You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm currently running a RabbitMQ server where customers are connecting to queues created by myself.
Importantly, I do not have control over the client code that they write, and by extension, the connection.
Currently I have a customer who is not acknowledging messages and has not set the QOS prefetch option on their connection. The result of this is that my server collects unacknowledged messages until it runs out of memory.
I have the option of turning on the lazy option but I believe that this will just result in my server running out of disk space as the default prefetch limit is 0 (unlimited).
I have created a max-length policy but this does not seem to affect unacknowledged messages.
It has been suggested that I just ask the customer to set this option or fix their code to acknowledge messages however this does not seem a long term solution.
I am unable to ensure that my customers behave correctly all the time.
Is it possible to set defaults (on the queue/user or globally) such that the number of unacknowledged is bounded?
Thanks in advance!
The text was updated successfully, but these errors were encountered:
IMHO it's a pretty valid "feature request", or bug report, depending on how you look at it. Let the server set a max-prefetch. Anyone can pretty easily crash a RabbitMQ server by not setting the prefetch limit (or set it to 0) and then just start consuming a long queue. Either a rough client or by mistake.
I don't see anything that would prevent such feature in the spec (e.g. by dictating the default). It's true that misbehaving clients that consume but never ack deliveries can put an unreasonable amount of stress on a node.
This will be investigated for 3.7.0 as an exception.
I'm currently running a RabbitMQ server where customers are connecting to queues created by myself.
Importantly, I do not have control over the client code that they write, and by extension, the connection.
Currently I have a customer who is not acknowledging messages and has not set the QOS prefetch option on their connection. The result of this is that my server collects unacknowledged messages until it runs out of memory.
I have the option of turning on the lazy option but I believe that this will just result in my server running out of disk space as the default prefetch limit is 0 (unlimited).
I have created a max-length policy but this does not seem to affect unacknowledged messages.
It has been suggested that I just ask the customer to set this option or fix their code to acknowledge messages however this does not seem a long term solution.
I am unable to ensure that my customers behave correctly all the time.
Is it possible to set defaults (on the queue/user or globally) such that the number of unacknowledged is bounded?
Thanks in advance!
The text was updated successfully, but these errors were encountered: