RabbitMQ icon indicating copy to clipboard operation
RabbitMQ copied to clipboard

消息发送两次

Open fanchao01 opened this issue 7 years ago • 1 comments

开启mirror queue时,消息通路是: channel -> rabbit_amqqueue:delvier ->delegate:cast(mast_pid) 主走这个 ->rabbit_amqqueue_process ->rabbit_queue_deliver: 在在消费者,直接发给存在的consumer ->rabbit_mirror_queue_master:publish -> gm:broadcast <1> ->rabbit_mirror_queue_slave:process_instruction({publish... slave节点 ->publish_or_discard ->BQ:publish 放入variable_queue -> rabbit_variable_queue:publish 放入自己的BQ
-> 通过gm广播到各slave节点
->deletegate:cast(slave_pids) slave节点 <2> -> rabbt_mirror_queue_salve: 收到消息

我想问的是<1>和<2>通过gm和delegate将消息两次发送到slave节点,这个有什么作用,为啥要发送两次呢?

fanchao01 avatar Jan 24 '18 12:01 fanchao01

我去,这个空格没有,尴尬。简单来说就是,消息会通过gm和deletgate两次发送到rabbit_mirror_queue_slave上,gm那次会存到后端BQ;为啥要分发两次呢?多谢。

fanchao01 avatar Jan 24 '18 12:01 fanchao01