《RabbitMQ 消息中間件》Rabbit集羣架構

前言

在現在微服務架構下,RabbitMQ也需要支持集羣,保證高可用。

集羣架構

1. 普通集羣模式

1.1 主節點的隊列,從節點是沒有的。但是從節點可以看到。

1.2 消費者可以監聽從節點,從節點會找主節點要消息。

1.3 Excahge是會主從同步的。

1.4 故障無法自動轉移。

2. 鏡像集羣

2.1 通過鏡像同步,實現Exchange和Queue的同步。

2.2 主節點故障,從節點會自動切換成主節點,正常工作。

集羣搭建(普通集羣)

1. 準備三臺機器:

主節點:1.0.0.1

從節點:1.0.0.2

從節點:1.0.0.3

2. 三臺機器都需要安裝RabbitMQ:https://www.cnblogs.com/jssj/p/13910643.html

3. 保證erlang的cookie是一樣的。

cat /var/lib/rabbitmq/.erlang.cookie    -- 三臺機器都需要改成一樣。

4. 啓動三臺機器的RabbitMQ。

rabbitmq-server -detached     -- 後臺啓動,前端頁面將失效,只能通過linux命令查詢MQ的消息和操作。

5. 查詢RabbitMQ啓動狀態

rabbitmqctl cluster_status

6. 停止從節點

rabbitmqctl stop_app

7. 從節點執行加入集羣命令

rabbitmqctl join_cluster rabbit@mq1    -- 其中mq1主節點的主機名

8. 從節點啓動

rabbitmqctl start_app   -- 這個時候前端插件有可以使用了

集羣效果圖:

集羣已經搭建完畢:

rabbitmqctl cluster_status

查看集羣狀態

集羣搭建(鏡像集羣)

策略查詢:

rabbitmqctl list_policies

策略說明:

1. 設置鏡像策略:

rabbitmqctl set_policy ha-all '^hello' '["ha-mode":"all","ha-sync-mode":"automatic"]'    -- ha-all 是策略名,^hello 表示符合該表達式的隊列。

鏡像集羣就設置好了,也可以在頁面設置:

設置完成之後:

 

 界面就隊列就變成這樣了,主節點宕機會自動切換主節點,主節點再次啓動又會自動成爲集羣的從節點。

策略刪除:

rabbitmqctl clear_policy ha-all

總結

rabbitmq集羣設置簡單,主要包含,交換機高可用和隊列高可用,掌握兩種集羣架構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章