文章目錄
在 CentOS7 上建立 RabbitMQ Cluster
新功能上線會用到 RabbitMQ,為了可以在效能與成本間取得平衡,所以打算做個效能測試,看什麼水準的硬體才能符合新功能的效能需要,在建立環境時才發現我沒有筆記過 在 CentOS7 上建立 RabbitMQ Cluster,所以趕緊補上
基本環境說明
- Azure VM (CentOS 7.9 Free-Gen1;Standard_B2s) * 3
設定方式
安裝 RabbitMQ
執行對象:
每一個 node
sudo yum -y install epel-release && sudo yum update -y && sudo yum install -y rabbitmq-server
建立 RabbitMQ service
執行對象:
每一個 node
sudo systemctl enable rabbitmq-server
在 RabbitMQ master node 上啟動 RabbitMQ 並取得 erlang cookie
執行對象:
master node
sudo systemctl start rabbitmq-server && sudo cat /var/lib/rabbitmq/.erlang.cookie
將 RabbitMQ master node 的 erlang cookie 複製至 RabbitMQ slave 並給予 erlang cookie 正確權限
執行對象:
slave node
sudo echo {master 的 erlang cookie} > /var/lib/rabbitmq/.erlang.cookie && sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie && sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
啟動 RabbitMQ slave node 上的 RabbitMQ
執行對象:
slave node
sudo systemctl start rabbitmq-server
取得 RabbitMQ master node 的 hostname
執行對象:
master node
RabbitMQ 是透過 node name 來識別 node,而 node name 由
{prefix}@{hostname}
組成 ( prefix 通常為rabbit
),詳細說明請參考 Clustering Guidesudo hostname
將 RabbitMQ slave node 加入 RabbitMQ master 中組成 cluster
執行對象:
slave node
sudo rabbitmqctl stop_app && sudo rabbitmqctl join_cluster --ram rabbit@{hostname} && sudo rabbitmqctl start_app
檢查 cluster 狀態
執行對象:
任一 node
sudo rabbitmqctl cluster_status
心得
官網的文件可能是需要兼容不同 os,使用上總覺得不太順手,照著做常會卡關
雖然安裝步驟並不複雜就懶得筆記,但幾次下來還是沒能完全記得所有流程與步驟,不免東漏西漏,想了想決定花點時間筆記一下,日後自己用起來也方便些
參考資訊
文章作者 Yowko Tsai
上次更新 2021-08-16
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。