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
- 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)
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
- Transport protocols: UDP (IP Multicast) or TCP
- Fragmentation of large messages
- Reliable unicast and multicast message transmission. Lost messages
- Failure detection: crashed nodes are excluded from the membership
- Flow control to prevent slow receivers to get overrun by fast senders
- Ordering protocols: FIFO, Total Order
What Does JGroups Buy Me ?
JGroups allows developers to create reliable messaging (one-to-one or one-to-many)
applications where reliability is a deployment issue, and does
not have to be implemented by the application developer. This saves
application developers significant amounts of time, and allows for the
application to be deployed in different environments, without having
to change code.