[rabbitmq-discuss] Is internal delivery (between exchanges) guaranteed?
Simon MacMullen
simon at rabbitmq.com
Wed Nov 21 11:08:49 GMT 2012
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