首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

J2EE集群原理(1)【转载】

2013-03-06 
J2EE集群原理(一)【转载】图一:负载均衡多个客户端同时发出请求,位于前端的负载均衡器根据特定算法,将请求分

J2EE集群原理(一)【转载】
图一:负载均衡多个客户端同时发出请求,位于前端的负载均衡器根据特定算法,将请求分担给比较空闲的机器,从而实现较高性能和较好的扩展性?J2EE集群原理(1)【转载】图二:失效备援当客户端连续向某个服务器发出请求时,该服务器可能处理到一半就宕机了,失效备援系统能够检测出有问题的服务器,将后续的请求转发至其他可用的机器,从而实现容错功能?那么,哪些对象可以被集群呢,答案是:“可以被部署在分布式拓扑的组件”因此,负载均衡和失效备援会发生在哪些J2EE代码中呢?“仅当你调用分布式对象的方法时

J2EE集群原理(1)【转载】

图四:分布式对象客户端和目标服务器不在一个JVM上,他们之间通过标准的网络协议进行通讯,这也就给集群提供了用武之地,实现集群效果的设备可以放在边界上对通讯做一些处理J2EE的分布式技术包括:JSP,JDBC,EJB,JNDI,WEB SERVICE等等?网络层的集群实现这是最常见最基本的J2EE集群功能,网络层集群技术包括:网络负载均衡和HTTP SESSION的失效备援?J2EE集群原理(1)【转载】图五:网络负载均衡?负载均衡器可以是一个硬件设备,比如F5 Load Balancer,也可以是另外一台服务器加一个负载均衡的插件,甚至一个Linux的嵌入式设备都能胜任。通常,负载均衡包括以下几个特点:l 实现负载均衡算法常用的算法有:Round-Robin, Random 和 Weight Based,算法的最终目标是尽量使每台服务器的负载达到平衡,但以上算法只是根据每台服务器接收的请求来进行均衡,因此都不能完全达到理想化的目标。有些复杂的算法可以在分发请求之前检测机器的性能,从而决定要由哪台机器来处理请求。l 健康监测一旦某台机器宕机了,负载均衡器要能够及时发现情况,并且将请求转交给其他可用的服务器,保证做到“failover”l Session stickiness即是让一次session会话的请求都尽量交给一台机器处理,这样省去了服务器之间交换session数据的开销?HTTPSession Failover当session进行到一半时,如果服务器挂了,我们就要想办法让session在另外一台机器上继续进行,而不是让用户重新来过。下面图六解释了实现HTTPSession Failover的原理:每次的session都会分配一个唯一的id,这个id以cookies的形式存放在客户端中,负载均衡器通过id分辨请求是属于哪个session的。在第四步中,服务器A以某种定义好的方式,定期将session数据保存起来,一旦出问题,负载均衡器会自动通知另一台服务器B,让它取出保存的数据,接A的班?J2EE集群原理(1)【转载】图六?要实现以上基本功能,首先要支持以下特性:l 全局session id每个jvm内部都会为每次session维护一个唯一的id,但多个jvm之间的session id会不会重复就很难说了,所以负载均衡器要能够协调各个jvm,使每个session id都能全局唯一。l 如何备份session这个跟具体厂商有关,后面会讲到l 备份的频度和粒度这个事关负载均衡的性能,因为备份数据的过程直接占用cpu、网络和IO性能??数据库方式备份J2EE集群原理(1)【转载】

这种方式好处很多,首先它省去了数据库连接和事务的开销,其次由于备份的数据已经放在内存中了,也就省去了从数据库恢复的过程?“JavaGroup”是当前tomcat和jboss集群方案的通讯层协议,本质上是一个可靠的组间通讯和管理的toolkit,它的核心功能在于“ Group membership protocols” 和“message multicast”,用在集群上非常适合,关于JavaGroup的更多内容,请参考 http://www.jgroups.org/javagroupsnew/docs/index.html?Tomcat的实现:多服务器之间互相拷贝内存?J2EE集群原理(1)【转载】?

原文出自 http://www.theserverside.com/tt/articles/article.tss?l=J2EEClustering

热点排行