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
Post a Comment