JGroup是一种可靠的群组通讯工具,用Java实现。JGroup以IP多播为基础并且提供可靠性和群组功能。
其中,可靠性包括
1,消息不丢失
2,大消息拆分和重组功能
3,保证消息有序性
4,消息原子性(某条消息要么全部成员都收到,或都收不到)
群组功能包括
1,群组成员知道群组内所有其他成员
2,当群组发生以下的事件,所有群组成员都能收到通知:
a) 新组员加入群
b) 旧组员离开群
c) 某现有组员意外脱离群
IP多播与JGroup的区别如下:
Unreliable Reliable
Unicast UDP TCP
Multicast IP Multicast JGroups
单播(Unicast)通信中,一个发送者只发送给一个接收者。单播有UDP和TCP两种方式,UDP协议是不可靠的协议,
传输中,包可能会丢失,重复,无序且有大小限制。TCP其实也属于单播,但TCP是可靠的,提供重传机制防止包丢失,
包的传输具有有序性,且TCP重组机制可以在传送大文件前将文件分割成碎片。
在多播(Multicast)中,发送者向多个接收者发送信息,IP多播扩展自UDP协议,发送者将消息发送给制定的多播地
址,接受者加入多播地址且接收这些信息。受UDP协议限制,IP多播仍然是不可靠的,且没有考虑到群组功能(如无法判
断哪些接收者加入了多播地址)。
JGroups扩展于可靠的单播传输机制(类似TCP)至多播,它在IP多播的基础上同时提供可靠性和群组功能。由于每
个产品都有不同的可靠性需求,所以,JGroups提供一种灵活的协议栈,这种协议栈可以让用户根据不同的可靠性指标,在
对可靠性高且速度慢和可靠性差但速度快的效果之间作出折衷的量化选择。