JGroups是一個可靠的群組通訊Java工具包。它基于IP組播(IP multicast),但在可靠性,組成員管理上對它作了擴展。jgroups是一個用于建立可靠的組播通訊工具。這里的組播并不一定指IP Multicast,jgroups同樣支持TCP JMS作為傳輸協(xié)議。
JavaGroups主要功能特征:
- 組的創(chuàng)建與刪除。組成員能在LAN或WAN環(huán)境內(nèi)互相發(fā)送消息
- 組的成員加入或離開
- 組成員的檢測和通知:加入,離開,掉線
- 檢測與移除已掉線的成員
- 消息的組播 (member-to-group或point-to-multipoint)
- 消息的點對點發(fā)送 (member-to-member或point-to-point)
- 支持UDP (IP Multicast), TCP, JMS等傳輸協(xié)議
- 免費開放源代碼
JGroups 配置:
PING: 發(fā)現(xiàn)初始成員
MERGE2: 將網(wǎng)絡(luò)層切分的包重新合并。
FD_SOCK: Failure Dectection 錯誤檢測,基于TCP
FD:Failure Dectection 錯誤檢測,基于心跳
VERIFY_SUSPECT: 檢查貌似失敗的節(jié)點
pbcast.NAKACK: 應(yīng)答,提供可靠傳輸
UNICAST: 可靠的UNICAST
pbcast.STABLE: 計算廣播信息是否穩(wěn)定
VIEW_SYNC: 定期廣播view(成員名單)
pbcast.GMS: Group membership, 處理joins/leaves/crashes等
FC: 流量控制
FRAG2:Fragmentation layer,分包,將大的數(shù)據(jù)包分拆成適合網(wǎng)絡(luò)層傳輸
JGroups的可靠性體:
1,對所有接收者的消息的無丟失傳輸(通過丟失消息的重發(fā))
2,大消息的分割傳輸和重組
3,消息的順序發(fā)送和接收
4,原子性:消息要么被所有接收者接收,要么全不
JavaGroups的成員關(guān)系管理體現(xiàn)在:
1,可以知道組內(nèi)有哪些成員
2,成員的加入,離開,掉線等的通知