[rabbitmq-discuss] Is internal delivery (between exchanges) guaranteed?

Simon MacMullen simon at rabbitmq.com
Wed Nov 21 12:55:36 GMT 2012


There's some discussion of confirms at:

http://www.rabbitmq.com/confirms.html

and a little bit about transactions at:

http://www.rabbitmq.com/amqp-0-9-1-reference.html#class.tx

Cheers, Simon

On 21/11/12 12:49, Michał Michalak wrote:
> I am new in RabbitMQ and message brokers in general. Could you please
> point me to a documentation where can I read about using "tx or confirms"?
> Many thanks in adv.
>
> MM
>
>
> W dniu 2012-11-21 12:08, Simon MacMullen pisze:
>> That's a logical way to look at the Rabbit internals. But it's not how
>> things are built in terms of Erlang processes.
>>
>> In terms of Erlang processes, a message first goes to the reader (read
>> side of a connection) then to a channel, then to queues. Exchanges are
>> just routing logic which runs in the channel process.
>>
>> Therefore messages can't exist "in" exchanges. But they can and do
>> exist in the reader and channel processes before they get to the queues.
>>
>> There are lots of ways (primarily node failure) that messages could
>> get as far as reader or channel, but be lost before they reach the
>> queue. IF you use tx or confirms, then you know that when a message
>> has been confirmed / tx.commit finishes it has made it as far as the
>> queue.
>>
>> Cheers, Simon
>>
>> On 21/11/12 11:01, Michał Michalak wrote:
>>> Assuming I have single host RabbitMQ server and settings like below:
>>>
>>>                    .--------------.
>>>                 .->| EX fanout    |
>>> .-----------.--'  | "monitoring" |
>>> | EX fanout |     '--------------'      .----.
>>> | "common"  |--.  .-----------.      .->| Q1 |
>>> '-----------'  '->| EX direct |--q1--'  '----'
>>>                    | "queues"  |--q2--.  .----.
>>>                    '-----------'      '->| Q2 |
>>>                                          '----'
>>>
>>> When I send message to exchange "common" with routing key "q1" - is it
>>> guaranteed that message reach Q1 queue? I want to make sure such message
>>> wont get stuck somewhere between exchanges or between exchange and
>>> queue.
>>>
>>>
>>>
>>> _______________________________________________
>>> rabbitmq-discuss mailing list
>>> rabbitmq-discuss at lists.rabbitmq.com
>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>>>
>>
>



More information about the rabbitmq-discuss mailing list