溫馨提示×

如何在CentOS上部署RabbitMQ集群

小樊
38
2025-09-17 19:05:44
欄目: 智能運維

在CentOS上部署RabbitMQ集群需要以下幾個步驟:

1. 安裝Erlang

RabbitMQ是用Erlang編寫的,因此首先需要在所有節點上安裝Erlang。

sudo yum install -y erlang

2. 安裝RabbitMQ

在所有節點上安裝RabbitMQ服務器。

sudo yum install -y rabbitmq-server

3. 啟動RabbitMQ服務

在所有節點上啟動RabbitMQ服務。

sudo systemctl start rabbitmq-server

4. 啟用管理插件(可選)

啟用RabbitMQ的管理插件,方便通過Web界面管理。

sudo rabbitmq-plugins enable rabbitmq_management

5. 配置Erlang Cookie

RabbitMQ集群中的所有節點必須共享相同的Erlang cookie。默認情況下,cookie文件位于/var/lib/rabbitmq/.erlang.cookie。

獲取當前節點的cookie

sudo cat /var/lib/rabbitmq/.erlang.cookie

將cookie復制到其他節點

將獲取到的cookie復制到其他節點的相同路徑下,并確保權限正確。

sudo scp /var/lib/rabbitmq/.erlang.cookie user@node2:/var/lib/rabbitmq/
sudo scp /var/lib/rabbitmq/.erlang.cookie user@node3:/var/lib/rabbitmq/

在其他節點上設置相同的權限:

sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie

6. 配置RabbitMQ集群

在第一個節點上啟用集群模式,并加入其他節點。

啟用集群模式

sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl start_app

加入集群

假設第一個節點的hostname是node1,其他節點的hostname分別是node2node3。

node2上:

sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@node1
sudo rabbitmqctl start_app

node3上:

sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@node1
sudo rabbitmqctl start_app

7. 驗證集群狀態

在任意一個節點上驗證集群狀態。

sudo rabbitmqctl cluster_status

你應該能看到所有節點都加入了集群。

8. 配置鏡像隊列(可選)

為了提高高可用性,可以配置鏡像隊列。

sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

這條命令會將所有隊列設置為鏡像隊列,并在所有節點上進行復制。

9. 配置防火墻

確保防火墻允許RabbitMQ的默認端口(5672)和SSL端口(5671)。

sudo firewall-cmd --permanent --zone=public --add-port=5672/tcp
sudo firewall-cmd --permanent --zone=public --add-port=5671/tcp
sudo firewall-cmd --reload

10. 測試集群

通過發送和接收消息來測試集群是否正常工作。

# 在node1上發送消息
sudo rabbitmqadmin publish routing_key=test_queue payload="Hello, RabbitMQ!"

# 在node2或node3上接收消息
sudo rabbitmqadmin get queue=test_queue

通過以上步驟,你應該能夠在CentOS上成功部署一個RabbitMQ集群。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女