JGroups学习(二)

一. JGroups协议栈简介


JGroups最强大的功能在于它灵活的协议栈配置,允许开发者调整协议栈中的协议从而适应自己实践的环境和需求。


JGroups启动时会根据配置的协议栈,构成一个协议栈Java对象,发送的消息会自顶向下的依次经过各层协议进行处理,直至发送到网络链路层。同样,收到的消息,JGroups也会将消息自底向上的传递,直至回调ReceiverAdapter交由应用程序。


消息在协议栈的流程如图:


二. JGroups协议栈详解


1. State Transfer(状态传输协议)

STATE_TRANSFER 是一个已有状态的传输协议,向周围节点传输二进制流。在state的提供端,JGroups创建一个outputStream并放到一个byte[]中,然后将这个output stream传递给getState(outputStream)回调,在state状态的请求端,创建一个inputstream并传递到回调方法setState(InputStream)中。为了将程序的state传送给刚加入的集群新节点。


STATE_TRANSFER必须要加载整个节点状态到内存中,然后传输给加入的节点。主要的限制是要传输的State过大,可能会导致内存好进。如果是很大的State 传输用STATE或者STATE_SOCK协议。如果state很小,就可以用STATE_TRANSFER。


2. RSVP(资源预留协议)

不是一个可靠交付的协议。但是在可靠消息交付的协议中(如NAKACK, UNICAST2, UNICAST)中作为参数。


3. FRAG and FRAG2(消息分片协议)

FRAG和FRAG2协议会将大消息分片成小消息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值