Apologies for posting here. Could not find an MSMQ forum.
We are trying to load balance MSMQ on multiple VM's on Azure using a common DNS name for all MSMQ instances [active/active configuration]. We are doing this to just balance the load. We have a few questions surrounding this approach.
a) Is it architecturally advisable to load balance MSMQ on multiple instances on Azure VM's. [Just like a web server]
b) When clients send messages to load balances queues, can they access the queue via a load balanced cluster? Since we have multiple msmq nodes across VM's, I think the messages will end up in all the queues on all the VM's?
c) Our plan is to have windows services as "listeners" installed on multiple machines [the windows services are also load balanced]. So, can we create queue listeners to clustered msmq queues. If the "Listeners" are configured from multiple machines into a clusterd queue, are the listener events going to fire multiple times? [as there are multiple listeners subscribed to a "clustered" msmq?]
b) What is the overhead of reading from a remote queue? [As mentioned above, we plan to have separate windows services running on multiple machines that will access the queue]
I am thinking MSMQ, just like SQL server is state-full and cannot be run in active/active configuration as both instances create their own queues?
If we run in a "fail over" mode, with active/passive msmq cluster, how do we handle the above scenario where multiple listeners from different machines talk to the same queue? If a new message arrives in a queue, do all the listeners on different machines get informed? Because, if they do, we will process the same message multiple times.
Thank you for the help..
-teeboy