8.13. Protocol Clustering

Introduction
When you cluster your JMS you remove a single point of failure from your architecture.
Both JBossESB replication and JMS clustering can be used together. For example, Service A is identified in the registry by a single JMS end-point reference. However, invisibly to the client, the JMS end-point reference is pointing to a clustered JMS queue, which has been separately configured to support three services. This is a federated approach to availability and load balancing.

Note

In fact, masking the replication of services from users (the client in the case of the JBoss ESB replication approach, and JBossESB itself in the case of the JMS clustering) is in line with the SOA principle of hiding these implementation details behind the service endpoint and not exposing them at the contract level.

Note

If using JMS clustering in this way you will need to ensure that your configuration is correctly configured. For instance, if you place all of your ESB services within a JMS cluster then you will not benefit from ESB replication.
If your provider simply cannot provide any clustering, you can add multiple listeners to your service and use multiple (JMS) providers. However this will require fail-over and load-balancing across providers which leads us to the next section.