RabbitMQ 映象佇列配置相關

2021-09-12 19:10:46 字數 880 閱讀 4352

例如我們將滿足規則「*_mirrored_queue」的佇列設定為映象佇列

./rabbitmqctl set_policy -p wenda-action mirrored_queue_policy_all ".*_mirrored_queue" ''

之後申請的所有滿足「*_mirrored_queue」規則的佇列都是映象佇列

tips:通過測試表明,使用policy的正則規則,可以設定映象佇列。如果沒有設定policy,在申明佇列的時候(queue_declare方法)使用x-ha-policy這個引數設定的映象佇列是無效的。設定了policy正則規則,不使用x-ha-policy引數,只要滿足正則規則的queue也會自動變成映象佇列,(許多部落格上是說明了用佇列的x-ha-policy引數來設定映象佇列,卻沒有指明需要提前建立好policy規則)。

rabbitmq文件說明:

當乙個佇列申明為映象佇列之後,並且ha-mode:all,集群中所有的節點都會有該佇列的映象,當佇列已經有一些資料之後,往集群中加入乙個新節點,新節點加入集群之後會自動建立該佇列的映象,但是佇列之前是有資料的,這些資料是立馬同步到新節點還是手動同步,這時候需要映象佇列的同步機制

queue_declare()方法中arg引數中有該配置:

ha-sync-mode manual 手動同步 | automatic 自動同步

tips:乙個佇列正在同步的時候,改佇列的所有操作都會阻塞,因為各種原因可能會阻塞幾分鐘、幾小時甚至幾天。(所以佇列同步需謹慎)

RabbitMQ 映象佇列配置相關

例如我們將滿足規則 mirrored queue 的佇列設定為映象佇列 rabbitmqctl set policy p wenda action mirrored queue policy all mirrored queue 之後申請的所有滿足 mirrored queue 規則的佇列都是映象佇...

Rabbitmq映象集群部署

位址 環境 兩台伺服器作為兩個節點,把node 003加入node 002 192.168.95.129 node 002 192.168.95.130 node 003 1.配置環境host,兩個節點的host都需要包含每個節點的資訊,資訊要一致。下面是在node 002中的操作。node 003...

docker執行rabbitMQ映象

1 使用docker命令執行rabbitmq docker run d name rabbit p 5672 5672 p 15672 15672 rabbitmq management 說明 客戶端連線埠為5672 管理儀表板埠為15672 docker執行例項為rabbit 2 檢視docker...