JBoss 系列十: Bela Ban's JGroups Manual 翻译 IV - 协议栈和高级概念
内容概要
本章讨论怎么样正确使用和配置JGroups的协议栈协议,以及一些 JGroups 的高级概念。
jGroups协议栈我们知道jGroups是一个可靠多播传输工具包,它能够为集群中成员提供点对点,点对组的通信,所有通信通过通道完成。通道基于协议栈之上,协议栈中协议各自有自己特别的功能,这些功能综合起来使通道通道具有完成多波传输的能力。协议栈中多种协议所具有的主要功能可以总结为:消息传输,集群发现,消息排序,消息无损耗传输,错误节点发现,集群成员管理。下图显示三个节点的集群,协议栈底层传输协议基于物理网络之上,通道基于协议栈之上,构建块接口和应用基于通道之上,如下:
接下来我们讨论这些被通道广泛使用的协议,根据他们各自的特定功能,我们讨论提供这些功能所需的关键属性,注意,这些属性只有在非常理解jGroups协议栈的情况下可以进行修改,所以我们不建议初学者对协议栈中协议的属性进行修改。我们讨论这些属性的目的是为了了解协议栈的功能。
传输协议 传输协议是协议栈最底层的协议,它负责从物理网络环境接收消息,将接收到的消息传递到协议栈中上层相邻的协议,以及将协议栈中上层协议传递下来的消息发送到物理网络。传输层协议主要包括UDP,TCP,TUNNEL。这些协议时独一的,在同一个协议栈中您只能配置一个传输层协议。
UDP使用IP多播(我们也可以配置使用多个单播)发送和接收数据,是默认推荐的传输层协议。如果您选择UDP作为您群组通信的传输协议,UDP配置如下:
<MERGE2 max_interval="10000" min_interval="2000"/>
JGroups选择max_interval与min_interval之间的一个随机值周期性的发送合并消息。