centos7 docker 部署rabbitmq集群

 

1>拉取ra'bbitmq

docker pull rabbitmq:3.6.15-management

2>创建rabbitmq

mkdir rabbitmq

3>创建3个mq运行容器

docker run -d --hostname rabbit1 --name myrabbit1 --log-opt max-size=10m --log-opt max-file=3 -v /docker/rabbitmq/myrabbit1:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

docker run -d --hostname rabbit2 --name myrabbit2 --log-opt max-size=10m --log-opt max-file=3 -v /docker/rabbitmq/myrabbit2:/var/lib/rabbitmq -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

docker run -d --hostname rabbit3 --name myrabbit3 --log-opt max-size=10m --log-opt max-file=3 -v /docker/rabbitmq/myrabbit3:/var/lib/rabbitmq -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

注释:

-d
#容器后台运行
--hostname rabbit1
#容器的主机名为 rabbit1,容器内部的hostname
--name rabbit1
#容器名为rabbit39,在宿主机上运行“docker ps”命令时显示的名称
--log-opt max-size=10m
#日志文件单个最大10M
--log-opt max-file=3
#日志文件最多保留3个
-v /data/rabbitmq:/var/lib/rabbitmq:z
#将宿主机目录/data/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。
-v /opt/rabbitmq/hosts:/etc/hosts
#略
-e RABBITMQ_DEFAULT_USER=user01
#设置rabbitmq默认用户为user01
-e RABBITMQ_DEFAULT_PASS=password01
#设置rabbitmq默认密码为password01
-e RABBITMQ_ERLANG_COOKIE='secret cookie here'
#设置rabbitmq的cookie为“secret cookie here”,可以自定义为其他文本,三个容器保持一致即可。
reg.onlymin.com/public/rabbitmq:3.6.15-management
#使用reg.onlymin.com/public/rabbitmq:3.6.15-management这个镜像

4>集群

docker exec myrabbit1 bash -c "rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl start_app && rabbitmqctl cluster_status"

docker exec myrabbit2 bash -c "rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl join_cluster --ram rabbit@rabbit1 && rabbitmqctl start_app"

docker exec myrabbit3 bash -c "rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl join_cluster --ram rabbit@rabbit1 && rabbitmqctl start_app"

5>访问:http://服务器IP:15672,记得开放端口156722

6>进入rabbitmq重新设置登录名和密码

docker exec -it myrabbit1 bash 

rabbitmqctl add_user 账号名 账号密码

rabbitmqctl set_user_tags hycore administrator //设置为管理员

rabbitmqctl delete_user guest //设置默认的guest账号

7>镜像队列是基于普通的集群模式的,所以你还是得先配置普通集群,然后才能设置镜像队列,我们就以上面的集群接着做。

我是通过上面开启的网页的管理端来设置的镜像队列,也可以通过命令,

《1》这里先说其中的网页设置方式:

1、点击admin菜单–>右侧的Policies选项–>左侧最下下边的Add/update a policy。

2、按照图中的内容根据自己的需求填写。

3、点击Add policy添加策略。

 

centos7 docker 部署rabbitmq集群_第1张图片

《2》在任意一个节点上执行:

1 root@live-mq-01:~# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

添加队列测试是否有复制了镜像到其他节点上

centos7 docker 部署rabbitmq集群_第2张图片

centos7 docker 部署rabbitmq集群_第3张图片

 

docker exec -it rabbit2 /bin/bash rabbitmqctl stop

#在一个正常的节点上移除有问题的节点

rabbitmqctl -n rabbit@rabbit1 forget_cluster_node rabbit@rabbit2

转载于:https://www.cnblogs.com/caihuaxing/p/11076633.html

你可能感兴趣的:(centos7 docker 部署rabbitmq集群)