1. 程式人生 > >Centos7-rabbitmq叢集部署

Centos7-rabbitmq叢集部署

一、對應主機host地址(每臺主機host檔案要保持一致)(每臺都操作) 172.16.2.61 rabbitmq01 172.16.2.62 rabbitmq02

二、每臺都安裝rabbitmq-server(注意:要先裝epel-release擴充套件源)(每臺都操作) yum -y install epel-release && yum -y install rabbitmq-server

三、啟動服務和檢視狀態(每臺都操作) systemctl start rabbitmq-server && systemctl enable rabbitmq-server && systemctl status rabbitmq-server

四、安裝管理外掛(每臺都操作) 1.web管理外掛 rabbitmq-plugins list                              # 檢視外掛列表 rabbitmq-plugins enable rabbitmq_management        # 啟動外掛

2.日誌跟蹤外掛 rabbitmq-plugins enable rabbitmq_tracing      #rabbitmq啟用trace外掛 rabbitmqctl trace_on                          #開啟trace的開關 rabbitmqctl trace_on -p test                 #開啟trace的開關(test為需要日誌追蹤的vhost) rabbitmqctl trace_off                         #關閉trace的開關

3.安裝rabbitmq_delayed_message_exchange(延時佇列) 預設外掛目錄(把下載好的外掛放在這個目錄下,啟動下即可) cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.12/plugins wget https://dl.bintray.com/rabbitmq/community-plugins/rabbitmq_delayed_message_exchange-0.0.1.ez rabbitmq-plugins enable rabbitmq_delayed_message_exchange        # 啟動外掛

五、普通叢集配置

1.說明: Rabbitmq的叢集是依附於erlang的叢集來工作的,所以必須先構建起erlang的叢集映象。 Erlang的叢集中各節點是經由過程一個magic cookie來實現的,這個cookie存放在 $home/.erlang.cookie 中, 我的是用yum安裝的,所以.erlang.cookie就放在/var/lib/rabbitmq中

2.複製cookie內容  erlang.cookie是erlang實現分散式的必要檔案,erlang分散式的每個節點上要保持相同的.erlang.cookie檔案, 同時保證檔案的許可權是400,不然節點之間就無法通訊。 開啟rabbitmq01伺服器的/var/lib/rabbitmq/.erlang.cookie中的內容,複製到其他節點上,最好是複製內容, 因為檔案許可權不對的話會出現問題,在最後退出儲存的時候使用wq!用!來進行強制儲存即可.

3.erlang.cookie複製完成後,逐個重啟節點服務: systemctl restart rabbitmq-server && systemctl status rabbitmq-server

4.新增到叢集並檢視叢集狀態: 將[email protected]作為叢集主節點,在其他節點上分別執行如下命令,以加入叢集中. rabbitmqctl stop_app                            # 僅停止應用 rabbitmqctl reset                                # 重置應用 rabbitmqctl join_cluster [email protected]        # 加入[email protected]叢集 rabbitmqctl start_app                            # 開啟應用 rabbitmqctl cluster_status                        # 都檢視叢集狀態

5.賬號管理 rabbitmqctl add_user admin admin                # 新增賬號 rabbitmqctl set_user_tags admin administrator    # 新增許可權 rabbitmqctl delete_user guest                    # 刪除使用者 rabbitmqctl change_password 使用者名稱 密碼            # 修改使用者的密碼 rabbitmqctl list_users                            # 檢視當前使用者列表

6.vhost管理 rabbitmqctl add_vhost vhostname      # 建立vhost rabbitmqctl delete_vhost vhostname     # 刪除vhost rabbitmqctl list_vhosts                # 檢視所有虛擬主機資訊 rabbitmqctl set_permissions -p v_host user  ".*"  ".*"  ".*"   ##繫結許可權,並且具備讀寫的許可權 rabbitmqctl list_queues                # 顯示所有佇列

7.設定映象佇列策略(將所有佇列設定為映象佇列,即佇列會被複制到各個節點,各個節點狀態保持一直。) rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'    # -p vhost 預設是/

8.訪問WEB地址:172.16.2.61:15672

至此RabbitMQ高可用叢集就已經搭建好了

從叢集中移除節點: rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl start_app

改變叢集節點型別 

加入叢集時指定節點型別: rabbitmqctl stop_app && rabbitmqctl join_cluster --ram [email protected] && rabbitmqctl start_app --ram 指定記憶體節點型別,--disc指定磁碟節點型別

修改節點型別: rabbitmqctl stop_app && rabbitmqctl change_cluster_node_type disc &&rabbitmqctl start_app

日誌檔案: ll /var/log/rabbitmq/