We are in the process of upgrading our application from using JBoss Messaging 1.4.0 to HornetQ.
Our application supports clustered (JBoss AS 4.3 based) nodes. With JBM, cluster nodes are peers and share processing load. Processing specifically related to messaging essentially consists of:
Receipt of data from remote agents. (This data is placed on a queue for processing.)
Processing of this data using message-driven pojos.
Forwarding notifications of results of processing to any remote clients subscribed to JMS topics.
Basically our HA requirements are:
For our remote clients to failover their connections so that they continue to receive notifications.
For message-driven pojos on the remaining cluster nodes to receive messages that were in the failed node's view of the queues.
Ideally we want all of our nodes to be live (at least as far as for receiving data from remote agents is concerned.). Not least to maximise customers' bangs for bucks.
We are trying to understand how clustering and HA work with HornetQ. Whereas with JBM, a cluster could be made to support failover simply by setting a flag on the connection factories and the destinations, with HornetQ it seems that for a fully HA N-node cluster 2N nodes will actually be required because each node requires an inactive backup. Is my understanding correct?
Is there no way to make e.g. a pair of hornetq servers in a cluster the (live) backup for each other?
Will this situation change when HORNETQ-402 is complete?