5 Replies Latest reply on Nov 13, 2008 2:47 AM by bartvh

    cluster performance with many queues

    bartvh

      As far as I understand, the documentation on clustering always assumes one is clustering to handle more messages over the same number of queues, that is, to scale the number of messages.

      My question is if clustering is also helpful when the number of messages per queue remains the same, but the number of queues increases, so to scale the number of queues. Is there some extra overhead per queue when the clustered option is enabled?

      In our setup, we have a growing number of clients, where each client has a seperate queue. In order to scale, we are looking at using clustered JBoss Messaging, but we are wandering whether this is really going to help us.

        • 1. Re: cluster performance with many queues
          ataylor

          If a queue is clustered and it has a local consumers then it distributes the messages to the local consumers in a round robin fashion. If a queue has no local consumers then it will distribute the messages around the cluster. If you have a clustered queue with only one consumer then (apart from failover) clustering won't really help you.

          • 2. Re: cluster performance with many queues
            bartvh

            Is there a way to have failover without clustering? I know about the ha-singleton setup, but this would place the jms server only at one of the nodes in the cluster. And I do want to distribute the load of the growing number of clients over multiple instances.

            • 3. Re: cluster performance with many queues
              ataylor

               

              Is there a way to have failover without clustering?


              Not with JBM. I guess you create you're queue dynamically, you could make it so that you always create you're producers and consumers on the same machine you create the queue on, but this would have to be done at the application level.

              • 4. Re: cluster performance with many queues
                timfox

                Yes you can have failover without clustering, but it's not automatic. You need to catch the exception from the ExceptionListener and recreate your connection on the new node.

                You can use HA-JNDI to look up the node in the cluster.

                • 5. Re: cluster performance with many queues
                  bartvh

                   

                  "timfox" wrote:
                  Yes you can have failover without clustering, but it's not automatic. You need to catch the exception from the ExceptionListener and recreate your connection on the new node.

                  This is failover of the connection, right? What about the queue? Is there a way to have it also moved over to the new node--other than having a clustered queue or using a singleton jms server?