1. 程式人生 > >九、RabbitMQ的叢集安裝

九、RabbitMQ的叢集安裝

概述

理解RabbitMQ的叢集原理可能需要花點功夫,但是配置RabbitMQ的叢集則非常容易。

注意

如果有防火牆,請提前開放相關埠:

  • client端通訊口5672
  • 管理口15672
  • server間內部通訊口25672
  • erlang發現口:4369

步驟

1.修改hosts檔案

在三個節點的hosts分別加入叢集節點的配置資訊:

# 修改hosts檔案
vi /etc/hosts

# 加入叢集節點
192.168.0.101 rabbitmq01
192.168.0.102 rabbitmq02
192.168.0.103 rabbitmq03

2.同步erlang.cookie檔案

在192.168.0.101節點執行:

# 將rabbitmq01節點的erlang.cookie同步到rabbitmq02和rabbitmq03

scp /var/lib/rabbitmq/.erlang.cookie rabbitmq02:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie rabbitmq03:/var/lib/rabbitmq/.erlang.cookie

也可以手動拷貝。

3.重啟rabbitmq01節點的rabbitmq服務

在192.168.0.101節點執行:

# 重啟rabbitmq服務

systemctl restart rabbitmq-server

4.建立叢集

在192.168.0.102節點執行:

# 停止rabbitmq
rabbitmqctl stop_app

# 重置節點
rabbitmqctl reset 

# 加入rabbitmq01
rabbitmqctl join_cluster rabbit@rabbitmq01

# 啟動應用
rabbitmqctl start_app

在192.168.0.103節點執行:

# 停止rabbitmq
rabbitmqctl stop_app

# 重置節點
rabbitmqctl reset 

# 加入rabbitmq01
rabbitmqctl join_cluster rabbit@rabbitmq01

# 啟動應用
rabbitmqctl start_app

如果你要加入的節點型別是記憶體直接,可以執行:

rabbitmqctl join_cluster --ram rabbit@rabbitmq01

5.檢視叢集狀態

# 檢視叢集狀態

rabbitmqctl cluster_status

結果:
 

[root@rabbitmq01 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq01 ...
[{nodes,[{disc,[rabbit@rabbitmq01,rabbit@rabbitmq02,rabbit@rabbitmq03]}]},
 {running_nodes,[rabbit@rabbitmq03,rabbit@rabbitmq02,rabbit@rabbitmq01]},
 {cluster_name,<<"rabbit@rabbitmq01">>},
 {partitions,[]},
 {alarms,[{rabbit@rabbitmq03,[]},
          {rabbit@rabbitmq02,[]},
          {rabbit@rabbitmq01,[]}]}]

6.也可以在控制檯中檢視