I know about the size limit for the message (4MB), but is there a limit to the queue size? Best practice limit maybe?
2 Answers
"Best practice limit maybe?"
One good test is to see how long it takes for a system to restart and become operational again. So you may want to have {{picks number out of air}} 100Gbytes of messages, for example, as a maximum limit but 100Gbytes could take {{picks another number out of air}} 30 minutes to reload. That may be way outside your SLA.
So:
- Decide what your down-time SLA for the system is
- Work out how many messages in storage would be needed to break SLA on restart
- Work out how many messages the system can actually store
- Choose lower of the two.
Yes, of course there is a limit.
You can find details here.
However, if your consumers consume messages at the same rate as producers produce, then you dont have to worry about the memory limit etc.
As far as my experience, the queue capacity depends on the machine and not that large compared to ActiveMQ or RabbitMQ
-
True, queue capacity varies from machine to machine as the constraint on maximum size is available kernel memory (used for indexing the messages). Interested to know what ActiveMQ or RabbitMQ use instead. Commented Dec 5, 2011 at 20:11
-
OK i used MSQM, activemq and rabbitmq, msmq didnt scale very good for me, compared to activemq and rabbitmq. Also, activemq and rabbitmq has much more functionality than msmq. Commented Dec 5, 2011 at 20:38
-
-