什么是JGroups
JGroups是一个可靠的组播通讯工具集(需要说明的是,这并不是说必须要使用IP Multicast,JGroups也可以使用TCP来实现)。JGroups可以用来创建一个组,这个组中的成员可以给其他成员发送消息。
JGroups is a toolkit for reliable messaging. It can be used to create clusters whose nodes can send messages to each other. The main features include
1)Cluster creation and deletion. Cluster nodes can be spread across LANs or WANs
2)Joining and leaving of clusters
3)Membership detection and notification about joined/left/crashed cluster nodes
4)Detection and removal of crashed nodes
5)Sending and receiving of node-to-cluster messages (point-to-multipoint)
6)Sending and receiving of node-to-node messages (point-to-point)
JGroups的主要功能如下:
1) 创建和删除组,组成员可以分布在局域网或广域网中。
2)组成员加入和离开组
3)成员关系的自动侦测并通知成员的加入,离开和丢失(原文是crashed,大意就是说没有通知的离开吧)
4)侦测并删除丢失的成员
5)发送和接收成员到组的消息(点到多点)
6)发送和接收成员到成员的消息(点到点)
Flexible Protocol Stack
The most powerful feature of JGroups is its flexible protocol stack, which allows developers to adapt it to exactly match their application requirements and network characteristics.
The benefit of this is that you only pay for what you use. By mixing and matching protocols, various differing application requirements can be satisfied.
JGroups comes with a large number of protocols (but anyone can write their own), for example
1)Transport protocols: UDP (IP Multicast) or TCP
2)Fragmentation of large messages
3)Reliable unicast and multicast message transmission. Lost messages are retransmitted
4)Failure detection: crashed nodes are excluded from the membership
5)Flow control to prevent slow receivers to get overrun by fast senders
6)Ordering protocols: FIFO, Total Order
7)Membership
8)Encryption
9)Compression
JGroups使用灵活的协议栈,这也是JGroups最强大(the most powerful)的功能,它允许开发人员配置协议栈来适用于他们自己的应用需求和网络特征。这样做的好处在于,开发人员只需要关注他们使用到的协议。通 过组合和匹配各种协议来满足各种不同应用的需求。JGroups实现了一系列的协议(开发人员也可以编写他们自己的协议),例如:
传输 协议:UDP(IP Multicast),TCP,JMS 分块协议:FRAG和FRAG2用来将大消息分块发送可靠传输协议: UNICAST和NAKACK 失败侦测:FD(passive failure detection),VERIFY_SUSPECT。自动将丢失的成员排除到成员列表以外。排序协议:Atomic (发送所有或者全部不发), FIFO, Causal, Total Order (序列或基于分块) 成员协议:GMS(Group membership) 用来处理成员的加入和离开加密:AES/ECB/PKCS5Padding/RSA...对传输的数据进行加密其他还包括流量控 制,统计等