WebLogic Server 10 集群的心跳

3 篇文章 0 订阅

BEA公司的WebLogic 10发布了。由于学习与工作的关系,我跟这家公司及其产品走得比较近^-^,今天,透过内幕消息来谈谈weblogic10 cluster的心跳。

服务器的集群是为了分散请求压力,并提供容错能力。集群中的server之间要保持通讯才能及时知道哪个server死掉了,以便把请求转发到别的server上。

cluster内部的通讯有两种:1是点对点(peer-to-peer)通讯,用TCP socket。2是广播消息,由一个server发给其它所有server的。

检查哪些server死掉,哪些活着,就是通过心跳——heartbeat。它是个广播消息。

在此之前,广播消息是用multicast协议,即发布/订阅模式。有一个地址和端口,cluster里所有的受管server都去监听。它使用的是UDP协议,不太可靠,有时会丢消息,如果集群内的server属于不同子网也会有问题,而且端口还可能和其它程序发生冲突。

如今在weblogic 10里,引入了unicast集群通讯协议。

unicast是点对点的TCP通讯,每个连接要建一个socket。用点对点通讯做一对多的广播,消息可靠了,跨子网问题也解决了,但面临一个问题:集群内server太多的话就会耗尽发送者的socket资源。为此weblogic采取了一种措施,将managed server每10个一组(事先按server名排序)分成多组(不足10个的也算一组),每个group选出一个leader,由leader与本组成员通讯,也和其它的leader通讯。这样,如果一个成员要广播一条消息,那么:

1、如果它不是leader,它就联系自己的leader,向它发送数据。

2、leader转发给所有本组其它成员。

3、leader转发给所有其它组的leader。

4、其它组的leader转发给自己的成员。

这个通讯过程会比直接multicast广播慢一些,因此unicast的heartbeat检测间隔是15秒,而不是multicast的10秒。在unicast下,一个server只要有一次heartbeat没检测到,就会被移出cluster的可用服务器列表。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值