JGroups is a toolkit for reliable multicast communication.
that this doesn't necessarily mean IP Multicast, JGroups can also use
transports such as TCP).
It can be used to create groups of processes whose members can send messages
to each other. The main features include
- Group creation and deletion. Group members can be spread across
LANs or WANs
- Joining and leaving of groups
- Membership detection and notification about joined/left/crashed members
- Detection and removal of crashed members
- Sending and receiving of member-to-group messages (point-to-multipoint)
- Sending and receiving of member-to-member 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
JGroups comes with a number of protocols (but anyone can write
their own), for example
- Transport protocols: UDP (IP Multicast), TCP, JMS
- Fragmentation of large messages
- Reliable unicast and multicast message transmission. Lost messages
- Failure detection: crashed members are excluded from the membership
- Ordering protocols: Atomic (all-or-none message delivery), Fifo,
Causal, Total Order (sequencer or token based)
What Does JGroups Buy Me ?
JGroups allows developers to create reliable multipoint (multicast)
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.