美文网首页
Docker分布式部署RabbitMQ集群

Docker分布式部署RabbitMQ集群

作者: soane1983 | 来源:发表于2018-12-11 09:42 被阅读0次

    1.宿主机

    CENTOS1 10.11.17.248 centos1:rabbit1

    CENTOS2 10.11.17.249 centos2:rabbit2

    CENTOS3 10.11.17.252 centos3:rabbit3

    2.宿主机持久数据目录和hosts配置(每个节点按下列步骤执行)

    创建持久数据目录

    mkdir /opt/rabbitmq

    host配置(rabbitmq集群需要解析主机名)

    cd /opt/rabbitmq

    vim hosts#输入

    10.11.17.248 centos1rabbit1

    10.11.17.249 centos2 rabbit2

    10.11.17.252 centos3 rabbit3

    3.创建容器

    docker run -d --net host --name rabbit1  --log-opt max-size=10m --log-opt max-file=3 -v /opt/rabbitmq:/var/lib/rabbitmq:z  -v /opt/rabbitmq/hosts:/etc/hosts -e RABBITMQ_DEFAULT_USER=user01  -e RABBITMQ_DEFAULT_PASS=password01 -e RABBITMQ_ERLANG_COOKIE='secret cookie here'  rabbitmq:3.6.15-management

    参数说明

    -d

    #容器后台运行

    --name rabbit1

    #容器名为rabbit1,在宿主机上运行“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=admin

    #设置rabbitmq默认用户为admin

    -e RABBITMQ_DEFAULT_PASS=admin123

    #设置rabbitmq默认密码为admin123

    -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. 设置节点2,加入到集群:

    docker exec -it rabbit2 /bin/bash

    rabbitmqctl stop_app

    rabbitmqctl reset

    rabbitmqctl join_cluster rabbit@centos1

    rabbitmqctl start_app

    exit

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

    docker exec -it rabbit3 bash

    rabbitmqctl stop_app

    rabbitmqctl reset

    rabbitmqctl join_cluster --ram rabbit@centos1

    rabbitmqctl start_app

    exit

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

    6. 查询集群状态

    rabbitmqctl cluster_status

    7.故障节点的处理

    docker exec -it rabbit2 /bin/bash

    rabbitmqctl stop

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

    rabbitmqctl  -n rabbit@centos1 forget_cluster_node rabbit@centos2

    相关文章

      网友评论

          本文标题:Docker分布式部署RabbitMQ集群

          本文链接:https://www.haomeiwen.com/subject/offshqtx.html