[rabbitmq-discuss] limit number of messages buffered in memory in new persister
chen650 at yahoo.com
Wed Mar 3 08:39:31 GMT 2010
Thanks a lot Matthew! We will try commit on every 100 publishes as you suggested. One problem is that client needs to keep a copy of uncommitted messages to handle broker restart.
Looking into the server's src code, it seems to me rabbit_reader is the process that accepts the publish. I am wondering when it sends to message to the message writer's inbox, can it wait for the ack from message writer? then it can stop accepting publish from client if there are too many un-acked messages. This will simplify client's publish a lot - no need to use commit, and no need to listen for channel flow.
> From: Matthew Sackman <matthew at lshift.net>
> There is no such parameter, and adding one would be very tricky indeed
giving the number of processes and corresponding mailboxes that messages
can sit in. Your best bet to limit this is to use transactions - if you
put the publishing channel in transactional mode, and then issue a
commit every, say, 100 publishes,
More information about the rabbitmq-discuss