JGroups is a reliable multicast system written in the Java language. JGroups is a toolkit for reliable messaging. It can be used to create clusters whose nodes can send messages to each other.
JGroups adds a "grouping" layer over a transport protocol, internally keeping a list of participants. This list is used to:
• Make the application aware of the listeners
• Make some or all transmissions reliable
• Allow atomic (all or none) transmissions
• Allow totally ordered transmissions
JGroups is a toolkit for reliable multicast communication. It can be used to create groups of processes whose members can send messages to each other. JGroups enables developers to create reliable multipoint (multicast) applications where reliability is a deployment issue.
JGroups also relieves the application developer from implementing this logic themselves. This saves significant development time and allows for the application to be deployed in different environments without having to change code.
Features of JGroups are:
• Cluster creation and deletion. Cluster nodes can be spread across LANs or WANs
• Joining and leaving of clusters
• Membership detection and notification about joined/left/crashed cluster nodes
• Detection and removal of crashed nodes
• Sending and receiving of node-to-cluster messages (point-to-multipoint)
• Sending and receiving of node-to-node messages (point-to-point)
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.