[rabbitmq-discuss] rabbitmq-discuss Digest, Vol 18, Issue 34

Matthias Radestock matthias at lshift.net
Tue Nov 18 07:55:07 GMT 2008


Ilya Grigorik wrote:
>     If the producer isn't rate-limited then message backlogs can build
>     up in various places throughout the system, before they ever get to
>     the persister. Furthermore, unless you use transactions, messages
>     are persisted asynchronously. So consequently you may have many more
>     messages in memory than have been written to disk.
> Interesting, I thought the semantics of 'persistent' flag guaranteed 
> that each messages has been committed to a journal?

basic.publish is an asynchronous method, and quite deliberately so; it 
does not solicit a reply from the server. So while the server ensures 
that each persistent message is *eventually* committed to a journal, 
there is no way for the server to tell the producer when that has been done.

Use of tx.{select,commit,rollback} changes that. The server guarantees 
that by the time it sends a tx.commit-ok all persistent messages 
published inside the preceding tx have been written to disk.


More information about the rabbitmq-discuss mailing list