搭建rabbitmq集群

搭建rabbitmq集群的步骤:
1.安装rabbitmq
2.加入rabbitmq节点到集群

在本地安装:

一.安装rabbitmq

docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management
docker run -d --hostname rabbit2 --name myrabbit2 -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management
docker run -d --hostname rabbit3 --name myrabbit3 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

注意点:
1.多个容器之间使用“–link”连接,此属性不能少
2.Erlang Cookie值必须相同,也就是RABBTIMQ_ERLANG_COOKIE参数的值必须相同,原因见下文“配置相同Erlang Cookie”部分;

二.加入RabbitMQ节点到集群
设置节点1:

    docker exec -it myrabbit1 bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl start_app
    exit

设置节点2,加入到集群:

docker exec -it myrabbit2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit

参数“–ram”表示设置为内存节点,忽略次参数默认为磁盘节点。

设置节点3,加入到集群:

docker exec -it myrabbit3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit

设置好之后,使用http://物理机ip:15672 进行访问了,默认账号密码是guest/guest,效果如下图:
在这里插入图片描述

在两个machine上安装:

1.建立两个虚拟机:

docker-machine create -d virtualbox rabbitmq
docker-machine create -d cirtualbox rabbitmq1

2.获取IP:
docke-machine ls

服务名称IP地址端口
主rabbitmq192.168.99.10015672
从rabbitmq1192.168.99.10115672

1.主节点搭建rabbitmq

docker run -d --hostname rabbitmq-node1 --name rabbitmq-node1 --add-host rabbitmq-node2:192.168.99.101 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=qj12345678@ -v /qj/rabbitmq-cluster/data:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 4369:4369 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' --restart always rabbitmq:3.7.4

端口说明:

  • 15672:访问 RabbitMQ 的 Web 管理界面
  • 5672:AMDQ消息之间的
  • 4369,epmd(Erlang Port Mapper
    Daemon),是Erlang的端口/结点名称映射程序,用来跟踪节点名称监听地址,在集群中起到一个类似DNS的作用。
  • 25672:server间内部通信口

2.登录rabbitmq node1节点:

docker exec -it rabbitmq-node1 bash
rabbitmqctl stop_app
 rabbitmqctl reset
 rabbitmqctl start_app

3.从节点rabbitmq1搭建

docker启动命令:

docker run -d --hostname rabbitmq-node2 --name rabbitmq-node2 --add-host rabbitmq-node1:192.16899.100  -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=qj12345678@ -v /qj/rabbitmq-cluster/data:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 4369:4369 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' --restart always rabbitmq:3.7.4

4.进入rabbitmq1节点

将rabbitmq-node2加入集群

#进入到node2节点
docker exec -it rabbitmq-node2 bash
登录rabbitmq node2节点:
 rabbitmqctl stop_app
 rabbitmqctl reset
 rabbitmqctl join_cluster --ram  rabbit@rabbitmq-node1  --ram 设置rabbitmq为内存存储模式   --disc 设置rabbitmq为硬盘存储模式 
 rabbitmqctl start_app

5.查看rabbitmq节点状态

docker@rabbitmq:/$ docker exec -it ef2c2ece7b24 bash     
root@rabbitmq-node1:/# rabbitmqctl cluster_status  
Cluster status of node rabbit@rabbitmq-node1 ...
[{nodes,[{disc,['rabbit@rabbitmq-node1']},{ram,['rabbit@rabbitmq-node2']}]},
 {running_nodes,['rabbit@rabbitmq-node2','rabbit@rabbitmq-node1']},
 {cluster_name,<<"rabbit@rabbitmq-node1">>},
 {partitions,[]},
 {alarms,[{'rabbit@rabbitmq-node2',[]},{'rabbit@rabbitmq-node1',[]}]}]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值