XmlBlaster Logo

REQUIREMENT

cluster.PtP

XmlBlaster Logo


Type NEW
Priority HIGH
Status CLOSED
Topic Point to point (PtP) routing of messages in a cluster environment
Des
cription

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.


Session naming convention

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

Pub/Sub routing mode
E.g. domain match <key domain='RUGBY_NEWS'/>
PtP routing mode
Destination given, e.g. <destination>/node/heron/client/joe/session/1<destination>
Comment Is routed?
No Invalid: Destination given with absolute name but destination cluster node is not known
/node/noexist/client/joe/session/1
Routing fails, message is locally handled No
Yes Invalid: Destination given with absolute name but destination cluster node is not known
/node/noexist/client/joe/session/1
Forward to domain matched Yes
No Yes: Destination cluster node is known
/node/heron/client/joe/session/1
The message is routed to the PtP cluster destination heron Yes
Yes Yes: Destination cluster node is known
/node/heron/client/joe/session/1
The message is routed to the PtP cluster destination heron, the domain routing match is ignored Yes
Yes No: A relative name is given
client/joe/session/1
The domain match routes the message. Yes

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.

Example
XML
<qos>
  <destination forceQueuing='true'>
     /node/heron/client/joeConnectedToHeron/-9
  </destination>
</qos>
   
Configure

NOTE: Configuration parameters are specified on command line (-someValue 17) or in the xmlBlaster.properties file (someValue=17). See requirement "util.property" for details.
Columns named Impl tells you if the feature is implemented.
Columns named Hot tells you if the configuration is changeable in hot operation.

See REQ cluster
See REQ engine.qos.publish.destination.PtP
See TEST org.xmlBlaster.test.cluster.PtPTest

This page is generated from the requirement XML file xmlBlaster/doc/requirements/cluster.PtP.xml

Back to overview