rabbitmq - Persistence and Durability Concepts Confusion in AMQP -


being bit confused these 2 terms, i'm thinking purpose of having persistent message transient (non-durable) queue? after all, if broker restarts , queues not restored recovered messages wasted.

you can have durable queue "mortal" messages, after broker restarts can still have queue empty , vice versa, sad, yes, you'll lose messages in queue.

in combination provided message persistence option useless cause no error.

but if bind alternate exchange exchange publishing messages , durable, after restart, can route messages if don't have transient queue declared.

example:

assume have such combination , bound queues, q*1 receive messages m*1 , q*2 - m*2.

[    exchange-main/durable   ] + [exchange-alternate/durable] [qm1/transient][qm2/transient]   [qax1/durable][qax2/durable] 

let's publish messages [mt1/transient] , `[md1/durable], we'll such situation:

[    exchange-main/durable   ] + [exchange-alternate/durable] [qm1/transient][qm2/transient]   [qax1/durable][qax2/durable] [mt1/transient] [md1/durable] 

after restart we'll get

[    exchange-main/durable   ] + [exchange-alternate/durable]                                  [qax1/durable][qax2/durable] 

let's publish 2 messages again, [mt1/transient] , `[md1/durable]:

[    exchange-main/durable   ] + [exchange-alternate/durable]                                  [qax1/durable][qax2/durable]                                  [mt1/transient]                                  [md1/durable] 

so, restart broker again:

[    exchange-main/durable   ] + [exchange-alternate/durable]                                  [qax1/durable][qax2/durable]                                  [md1/durable] 

Comments

Popular posts from this blog

javascript - JS causing window size to be bigger than necessary - Dropdown bug -

php - Calling a template part from a post -

How to mention the localhost in android -