docker搭建 rabbitmq集群

2022-04-23 12:11:48 字數 2059 閱讀 1869

1、拉取映象

docker pull rabbitmq:management

2、執行容器

docker run -d --hostname rabbit_host1 --name rabbitmq1 -p 15672:15672 -p 5672:5672 -e rabbitmq_erlang_cookie='rabbitmq_cookie' rabbitmq:management

docker run -d --hostname rabbit_host2 --name rabbitmq2 -p 5673:5672 --link rabbitmq1:rabbit_host1 -e rabbitmq_erlang_cookie='rabbitmq_cookie' rabbitmq:management

docker run -d --hostname rabbit_host3 --name rabbitmq3 -p 5674:5672 --link rabbitmq1:rabbit_host1 --link rabbitmq2:rabbit_host2 -e rabbitmq_erlang_cookie='rabbitmq_cookie' rabbitmq:management

主要引數:

-p 15672:15672 management 介面管理訪問埠

-p 5672:5672 amqp 訪問埠

--link 容器之間連線

erlang cookie 值必須相同,也就是乙個集群內 rabbitmq_erlang_cookie 引數的值必須相同。因為 rabbitmq 是用erlang實現的,erlang

cookie 相當於不同節點之間通訊的金鑰,erlang節點通過交換

erlang cookie 獲得認證

3、加入節點到集群

設定節點1:

docker exec -it

rabbitmq1 bash

root@rabbit_host1:/#rabbitmqctl

root@rabbit_host1:/#rabbitmqctl

reset

root@rabbit_host1:/#rabbitmqctl

root@rabbit_host1:/#exit

設定節點2,加入到集群:

docker exec -it

rabbitmq2 bash

root@rabbit_host2:/#rabbitmqctl

root@rabbit_host2:/#rabbitmqctl

reset

root@rabbit_host2:/# rabbitmqctl join_cluster --ram

rabbit@rabbit_host1

root@rabbit_host2:/#rabbitmqctl

root@rabbit_host2:/#

exit

設定節點3,加入到集群:

docker exec -it rabbitmq3 bash

root@rabbit_host3:/# rabbitmqctl reset

root@rabbit_host3:/# rabbitmqctl join_cluster

--ram rabbit@rabbit_host1

root@rabbit_host3:/# exit

主要引數:

--ram 表示設定為記憶體節點,忽略次引數預設為磁碟節點。該配置啟動了3個節點,1個磁碟節點和2個記憶體節點。

設定好之後,使用 http://ip:15672 進行訪問,預設賬號密碼:guest/guest

4、集群檢視

mac 使用docker 安裝 rabbitmq

專案要用到rabbitmq 官網說brew install 但是brew update就半天都不成功,突然想起了docker,以前用過一點點,就試著來了一下 docker search rabbitmq management docker pull rabbitmq management docke...

從0到1在Linux上搭建RabbitMq集群教程

搭建環境阿里雲centeros8.2,erlang23.x,rabbitmq3.8.x 1 準備三颱阿里雲伺服器,情況如下 2 鑑於後續埠通訊等操作需要,提前做好前置工作 1 阿里雲安全組內開通15672埠,便於遠端管理rabbitmq集群 2 配置三颱主機的hosts檔案,因為rabbitmq是通...

erlang jcl遠端除錯 rabbitmq

job control mode jcl in which jobs can be started,stopped,detached or connected.only the current job can communicate with the shell.通過jcl,我們可以遠端接入乙個er...