一、環境說明
筆記本(8g-500g),安裝ubuntu 20.04.3 lts,學習rabbitmq集群安裝。
rabbitmq 集群
rabbitmq這款訊息佇列中介軟體產品本身是基於erlang編寫,erlang語言天生具備分布式特性(通過同步erlang集群各節點的magic cookie來實現)。
因此,rabbitmq天然支援clustering。
這使得rabbitmq本身不需要像activemq、kafka那樣通過zookeeper分別來實現ha方案和儲存集群的元資料。
集群是保證可靠性的一種方式,同時可以通過水平擴充套件以達到增加訊息吞吐量能力的目的。
二、安裝rabbitmq
1、安裝 erlang
sudo apt-get install erlang-nox # 安裝erlang
erl -version #驗證是否成功
2、新增公鑰wget -o-
sudo apt-key add rabbitmq-release-signing-key.asc
3、更新軟體包sudo apt-get update
4、安裝 rabbitmqsudo apt-get install rabbitmq-server #安裝成功自動啟動
5、檢視 rabbitmq狀態systemctl status rabbitmq-server #active: active (running) 說明處於執行狀態
# service rabbitmq-server status 用service指令也可以檢視,同systemctl指令
三、單機多例項搭建
1、關閉rabbitmq服務
systemctl stop rabbitmq-server
### 使用下面命令檢測一下,確認mq服務是否都關閉
ps aux|grep epmd
ps aux|grep erl
2、建立並啟動節點sudo rabbitmq_node_port=5672 rabbitmq_nodename=rabbit rabbitmq_server_start_args="-rabbitmq_management listener " rabbitmq-server start &
sudo rabbitmq_node_port=5673 rabbitmq_nodename=rabbit1 rabbitmq_server_start_args="-rabbitmq_management listener " rabbitmq-server start &
sudo rabbitmq_node_port=5674 rabbitmq_nodename=rabbit2 rabbitmq_server_start_args="-rabbitmq_management listener " rabbitmq-server start &
注意,乙個節點啟動成功之後,再建立下乙個節點。
3、設定rabbit為主節點,rabbit1,rabbit2為從節點。
# 停止應用
# 清楚節點上的歷史,否則節點無法加入集群
sudo rabbitmqctl -n rabbit reset
#啟動應用
sudo rabbitmqctl -n rabbit1 reset
sudo rabbitmqctl -n rabbit1 join_cluster rabbit@wchw-lenovo-ideapad-y470
sudo rabbitmqctl -n rabbit2 reset
sudo rabbitmqctl -n rabbit2 join_cluster rabbit@wchw-lenovo-ideapad-y470
4、給每個節點新增使用者並設定許可權以及資源sudo rabbitmqctl -n rabbit add_user admin wsxadmin
sudo rabbitmqctl -n rabbit set_user_tags admin administrator
sudo rabbitmqctl -n rabbit set_permissions -p / admin ".*" ".*" ".*"
sudo rabbitmqctl -n rabbit1 add_user admin wsxadmin
sudo rabbitmqctl -n rabbit1 set_user_tags admin administrator
sudo rabbitmqctl -n rabbit1 set_permissions -p / admin ".*" ".*" ".*"
sudo rabbitmqctl -n rabbit2 add_user admin wsxadmin
sudo rabbitmqctl -n rabbit2 set_user_tags admin administrator
sudo rabbitmqctl -n rabbit2 set_permissions -p / admin ".*" ".*" ".*"
5、檢視集群資訊sudo rabbitmqctl cluster_status -n rabbit
四、小結
如果採用多機部署方式,需讀取其中乙個節點的cookie, 並複製到其他節點(節點之間通過cookie確定相互是否可通訊)。
cookie存放在/var/lib/rabbitmq/.erlang.cookie。
例如:主機名分別為rabbit-1、rabbit-2
1、逐個啟動各節點
2、配置各節點的hosts檔案( vim /etc/hosts)
ip1:rabbit-1
ip2:rabbit-2
其它步驟雷同單機部署方式
Linux安裝RabbitMQ 單機
了解rabbitmq的人就會知道,rabbitmq使用erlang語言開發的。所以安裝rabbitmq服務,就得先安裝依賴環境。安裝erlang 檢查是否安裝過 sudo rpm qa erlang wget sudo rpm uvh erlang solutions 1.0 1.noarch.rp...
rabbitmq單機多例項集群搭建
這裡展示的是單機集群的部署,如果機器足夠多,可以選擇多機集群部署,詳細可以參考 rabbitmq集群搭建 多機 1.安裝單機版的 教程 linux下安裝rabbitmq 2.要搭建集群,先將之前單機版中歷史記錄乾掉,刪除rabbitmq var lib rabbitmq mnesia下的所有內容。3...
安裝rabbitmq集群
一.安裝 erlang rabbitmq 在10.0.0.45 10.0.0.57 10.0.0.58三個節點上安裝,然後開啟 rabbitmq 監控外掛程式 以下在root使用者操作 1.etc hosts增加 10.0.0.45 node1 10.0.0.57 node2 10.0.0.58 n...