When
servers are in a cluster, these member servers communicate with each other by
sending heartbeats and indicating that they are alive. For this communication
between the servers, either unicast or multicast messaging is used. This is
chosen from the admin console in Cluster
-> Configuration -> Messaging -> Messaging Mode.
To use
multicast messaging, hardware configuration and support for multicast packets
is required. Unicast does not have this requirement, which is why using unicast
in latest versions is recommended.
When
multicast messaging is used, it is a one-to-many communication, every server
sends the notification/heartbeat/multicast packet to each other. This causes a
heavy load on the application’s multicast buffer, so if the buffer is full, new
multicast messages cannot be written to the buffer and the application is not
notified when messages are dropped. So there is a possibility that the server
instances miss the messages. This might lead in the cluster throwing out the
server instances out of the cluster.
Unicast
configuration is much easier because it does not require cross network
configuration that multicast requires. Additionally, it reduces potential
network errors that can occur from multicast address conflicts.
Mode of
Communication:
Multicast – A multicast address and multicast port is used for listening to the messages.
Multicast – A multicast address and multicast port is used for listening to the messages.
Unicast –
A network channel is used for communication between the servers. If no channel
is specified, default network channel is used.
=====================
Method
of communication between servers:
Multicast – Each server communicates with every member server in the cluster. Which means heartbeats are sent to every server.
Multicast – Each server communicates with every member server in the cluster. Which means heartbeats are sent to every server.
Unicast - For
the member servers in the cluster, group leaders are chosen and only those
group leaders communicate with the servers among the group and these leaders
notify each other about the availability of all the other servers.
For example : Suppose there are 6 servers in the cluster. 2 groups are made and there are 2 group leaders. Other 2 servers of the group will notify their leader that they are alive and the group leader will send this information to the leader of other group.
For example : Suppose there are 6 servers in the cluster. 2 groups are made and there are 2 group leaders. Other 2 servers of the group will notify their leader that they are alive and the group leader will send this information to the leader of other group.
The
frequency of communication in unicast mode is similar to the frequency of
sending messages on multicast port.
=====================
For new
server versions, using unicast is recommended because it is a simplified
communication mode. But for backward compatibility with the previous versions,
you will need to use multicast if there is a communication requirement between
clusters of versions prior to WLS 10.0.
Whenever
the messaging mode of the cluster is changed, all the servers in the cluster
need a restart because the changes are not dynamic.
If you
have any questions regarding unicast and multicast messaging mode, please let
us know about it.