|Topic||Point to point (PtP) routing of messages in a cluster environment|
In this requirement we examine how a client can send messages to other clients (or specific sessions of other clients) in PtP mode in an xmlBlaster cluster environment.
Probably it is best to read the cluster requirement first to get a basic understanding what a xmlBaster cluster setup is (see link below).
PtP messages in a cluster environment is mainly a routing problem. The problem to solve is to find a unique naming schema and with this how to find the destination cluster node.
The following figure shows the unified session naming conventions.
The absolute name is cluster wide unique. Sending a PtP message with such a destination name allows us to route the message in a cluster environment.
If your destination address has an absolute name like '/node/heron/client/joe' the local node and all direct neighbors are checked and if 'heron' is found the message is directly delivered. Otherwise the same routing rule as for Publish/Subscribe apply. For example a relative destination address 'client/joe/1' is routed similar to Publish/Subscribe by looking at the key-domain or other key attributes. If no routing matches the local node is chosen and the PtP message is queued for 'client/joe/1' until this client logs in.
The following table shows the routing precedence for PtP versus Pub/Sub configured messages
To summarize: A PtP message with a valid destination cluster node given is routed to this node, in all other cases the the routing configuration similar to publish/subscribe applies.
<qos> <destination forceQueuing='true'> /node/heron/client/joeConnectedToHeron/-9 </destination> </qos>
NOTE: Configuration parameters are specified on command line (-someValue 17) or in the
xmlBlaster.properties file (someValue=17). See requirement "util.property" for details.
This page is generated from the requirement XML file xmlBlaster/doc/requirements/cluster.PtP.xml
Back to overview