_______________________________________________
rabbitmq-discuss mailing list
rabbitmq...@lists.rabbitmq.com
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
-J
Jason J. W. Williams wrote:
> On Wed, Jul 7, 2010 at 2:37 PM, Timothy Chen <t...@evri.com> wrote:
>> I remember reading from somewhere that RabbitMQ doesn't support
>> FIFO, or in other words doesn't gurantee ordering of messages being
>> published.
>>
>> I wonder if this is true?
> This is true.
or not.
RabbitMQ conforms to the ordering guarantees specified by AMQP. See
section 4.7 of the AMQP 0-9-1 spec:
<quote>
4.7 Content Ordering Guarantees
The order of methods flowing across a channel is stable: methods are
received in the same order as they are sent. This is guaranteed by the
TCP/IP transport used by AMQP. Further, contents are processed in a
stable manner by the server. Specifically, contents flowing through a
single path within the server will remain ordered. For contents of a
given priority flowing through a single path, we define a content
processing path as consisting of one incoming channel, one exchange, one
queue, and one outgoing channel.
Guidelines for implementors:
The server MUST preserve the order of contents flowing through a single
content processing path, unless the redelivered field is set on the
Basic.Deliver or Basic.Get-Ok methods, and according to the rules
governing the conditions under which that field can be set.
</quote>
Regards,
Matthias.
That's good to know. Could have sworn there has been discussion here
about ensuring order of delivery is up to the consumer/producers
involved.
-J
Tim
Jason J. W. Williams wrote:
> That's good to know. Could have sworn there has been discussion here
> about ensuring order of delivery is up to the consumer/producers
> involved.
Timothy Chen wrote:
> I thought I read that somewhere as well, but definitely good to know
> there is ordering support now in RabbitMQ (a new feature? ).
It's not a new feature. You may have seen is discussions involving
scenarios which fall outside the conditions for which the ordering
guarantees apply. It is all too easy to end up in such situations. In
particular note the "unless the redelivered field is set" condition,
which means any disconnect by consumers can cause messages pending
acknowledgement to be subsequently delivered out of order.