2.9. Peer Protocol
Abstract
The peer protocol enables messaging clients to communicate with each other directly, eliminating the requirement to route messages through an external message broker. It does this by embedding a message broker in each client and using the embedded brokers to mediate the interactions.
Overview
The peer protocol enables messaging clients to communicate without the need for a separate message broker. It creates a peer-to-peer network by creating an embedded broker inside each peer endpoint and setting up a network connector between them. The messaging clients are formed into a network-of-brokers.
Figure 2.2, “Peer Protocol Endpoints with Embedded Brokers” illustrates the peer-to-peer network topology for a simple two-peer network.
Figure 2.2. Peer Protocol Endpoints with Embedded Brokers
The producer sends messages to its embedded broker,
broker1
, by connecting to the local VM endpoint, vm://broker1
. The embedded brokers, broker1
and broker2
, are linked together using a network connector which allows messages to flow in either direction between the brokers. When the producer sends a message to the queue, broker1
pushes the message across the network connector to broker2
. The consumer receives the message from broker2
.
Peer endpoint discovery
The peer protocol uses multicast discovery to locate active peers on the network. As the embedded brokers are instantiated they use a multicast discovery agent to locate other embedded brokers in the same multicast group. The multicast group ID is provided as part of the peer URI.
Important
To use the peer protocol, you must ensure that the IP multicast protocol is enabled on your operating system.
For more information about using multicast discovery and network connectors see Using Networks of Brokers.
URI syntax
A
peer
URI must conform to the following syntax:
peer://PeerGroup/BrokerName?BrokerOptions
Where the group name, PeerGroup, identifies the set of peers that can communicate with each other. A given peer can connect only to the set of peers that specify the same PeerGroup name in their URLs. The BrokerName specifies the broker name for the embedded broker. The broker options, BrokerOptions, are specified in the form of a query list.
Sample URI
The following is an example of a peer URL that belongs to the peer group,
groupA
, and creates an embedded broker with broker name, broker1
:
peer://groupA/broker1?persistent=false