仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 595|回复: 14
打印 上一主题 下一主题

[学习教程] 了解下JAVA的Weblogic中的load banlance成绩

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:24:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
net网页编程程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net网页编程比。java程序员都是代码完成的,所以java程序员常戏称.net网页编程程序员是操作员,呵呵。
在一个庞大的企业使用情况中,常常一个applicationserver没法承当一切的服务哀求,以是良多企业都为此架起了多个服务器实例。这些服务器实例分离在一同,能够构造成一个健旺的企业运转情况,它易于扩大、撑持loadbanlance,撑持failover,能够做到backendserver的failure关于客户是通明的。如许的一个企业情况就是我们常说的Cluster。WeblogicCluster供应了多种loadbanlance的大概,好比webapplication哀求处置,能够经由过程proxy来完成(e.g.apache,HttpClusterServlet,IIS),分歧的J2EEComponent在Weblogic有分歧的loadbanlance完成.上面我们来一一看看,
1:Http哀求经由过程proxy完成的loadbanlance
当客户端经由过程proxy会见Cluster中的营业页面时,proxy经由过程本身的算法(round-robin)来完成loadbanlance.固然这些哀求请求是从分歧的客户端(大概不带session的统一客户真个哀求)倡议的.关于统一客户端,假如页面中利用了session,那末Weblogic经由过程session粘连来完成统一客户真个哀求会被dispatch到primaryserver上.假如primaryserver没法供应服务,那末哀求会被dispatch到其他server上。session粘连能够经由过程以下几种体例完成:
1.1:browser撑持cookie的话,weblogic会把jsessionid写进到cookie中,下次哀求提交的时分jseeionid会被提交到proxy端,proxy经由过程jseeionid来决意哀求的dispatch。
1.2:browser不撑持cookie,server端在处置前往页面时,挪用response.encodeURL()来将sessionid附在url上。
1.3:post-data体例,间接将session作为数据,post到proxy端。
我们来看看weblogic供应的HttpClusterServlet是怎样完成loadbanlance的,
public synchronized Server next() {
      if (list.size() == 0) return null;
      if (index == -1) index = (int)(java.lang.Math.random() * list.size());
      else index = ++index % list.size();
      Object[] servers = list.values().toArray();
      return (Server) servers[index];
}
HttpClusterServlet保护一个managedservletlist,每当一个哀求被dispatch到某个managedserver后,serverlist的index加1,如许鄙人次dispatch哀求的时分,哀求将会被dispatch到serverlist中的其他server上往。逻辑很复杂,但基础也完成了loadbanlance功效。
2:InitialContext的loadbanlance
我们晓得,每次我们必要猎取jdbcconnection,jmsconnection,ejbstub这类RMIObject的时分,我们都要初始化一个高低文,成绩是我们初始化高低文的时分,毗连的究竟是哪一个managedserver?
初始化高低文的时分,我们必要供应一个providerurl,以下:
PROVIDER_URL="t3://localhost:7011";
这类写法很复杂,间接毗连7001对应的server,但假如写法以下呢?
CLUSTER_PROVIDER_URL="t3://localhost:7011,localhost:7021";
这时候候,loadbanlance就又来了。10个客户端(weblogicserver大概thinclient)new10个InitialContext的话,这10个客户端将55分离毗连到后真个两台server上往。实践上客户端在newInitialContext的时分,weblogic会创立一个T3毗连到对应的managedserver上(RJVMConnection),注重这个RJVMConnection是个长毗连,在统一个JVM中,连向统一managedserver的毗连只要一个。即假如一个客户端,一连new10个InitialContext,这10个Context实践上是统一对象,weblogicserver这时候基本不会和后真个server通信,由于对象已在clientJVM中有了。
newInitialContext的loadbanlance算法基础和proxy的算法一样,都是保护一个serverlist,经由过程index递增的办法完成。分歧的是:在毗连某个managedserver的connection碰到peergone的时分,proxy能够recoverserverlist,而jndicontext的loadbanlance算法例不克不及。也就是说假如后端有三个managedserver,server1,server2接踵呈现妨碍的话,一切客户真个context将城市毗连到server3,即便server1,server2可以恢复过去,后续哀求也不会毗连到他们,除非server3厥后呈现成绩。
值得一提的是:context一切的相干操纵时serveraffinity的,而非loadbanlance。好比:2个客户端分离new了个context,分离毗连到server1和server2上,毗连到server1的context,做了10次lookup,那末这10次操纵,都在server1上完成,不会在server2上作任何操纵。以是说jndi级其余loadbanlance不是相对平衡的。
<p>
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,
透明 该用户已被删除
沙发
发表于 2015-1-21 05:10:06 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
活着的死人 该用户已被删除
板凳
 楼主| 发表于 2015-1-22 12:04:34 来自手机 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
admin 该用户已被删除
地板
发表于 2015-1-31 06:30:58 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
分手快乐 该用户已被删除
5#
发表于 2015-2-4 16:24:37 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
再现理想 该用户已被删除
6#
发表于 2015-2-5 04:21:50 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
变相怪杰 该用户已被删除
7#
发表于 2015-2-6 08:59:01 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
谁可相欹 该用户已被删除
8#
发表于 2015-2-8 06:14:55 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-2-24 12:04:16 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
柔情似水 该用户已被删除
10#
发表于 2015-3-7 12:02:14 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
金色的骷髅 该用户已被删除
11#
发表于 2015-3-9 23:43:48 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
第二个灵魂 该用户已被删除
12#
发表于 2015-3-10 09:29:50 | 只看该作者
是一种为 Internet发展的计算机语言
飘灵儿 该用户已被删除
13#
发表于 2015-3-11 01:36:38 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
乐观 该用户已被删除
14#
发表于 2015-3-17 18:09:23 | 只看该作者
是一种突破用户端机器环境和CPU
再见西城 该用户已被删除
15#
发表于 2015-3-24 17:07:42 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 19:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表