这篇文章主要围绕docker部署rabbitmq和docker部署rabbitmq集群展开,旨在为您提供一份详细的参考资料。我们将全面介绍docker部署rabbitmq的优缺点,解答docker部署
这篇文章主要围绕docker部署rabbitmq和docker部署rabbitmq集群展开,旨在为您提供一份详细的参考资料。我们将全面介绍docker部署rabbitmq的优缺点,解答docker部署rabbitmq集群的相关问题,同时也会为您带来CentOS-Docker 安装 RabbitMQ 集群 (rabbitmq:3.7.16-management)、CentOS-Docker安装RabbitMQ集群(rabbitmq:3.7.16-management)、CentOS-Docker安装RabbitMQ集群(rabbitmq:3.8.9-management)、centos7 docker 部署rabbitmq集群的实用方法。
本文目录一览:- docker部署rabbitmq(docker部署rabbitmq集群)
- CentOS-Docker 安装 RabbitMQ 集群 (rabbitmq:3.7.16-management)
- CentOS-Docker安装RabbitMQ集群(rabbitmq:3.7.16-management)
- CentOS-Docker安装RabbitMQ集群(rabbitmq:3.8.9-management)
- centos7 docker 部署rabbitmq集群
docker部署rabbitmq(docker部署rabbitmq集群)
一、docker上部署并启动RabbitMQ
1、查询rabbitmq镜像 #docker search rabbitmq:management 2、拉取rabbitmq镜像 #docker pull rabbitmq:management 3、创建并启动容器 (1)创建和启动 #docker run -d --hostname my-rabbit --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management (2)创建和启动(同时设置用户和密码)
#docker run -d --hostname my-rabbit --name rabbitmq --restart always -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin-
v
/etc/localtime
:
/etc/localtime
:ro
-v /usr/local/rabbitmq/data:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
注意:
--hostname:指定容器主机名称
--name:指定容器名称
-p:将mq端口号映射到本地
15672:控制台端口号
5672:应用访问端口号
控制台端口用于管理rabbitmq,应用访问端口号为应用程序访问
4、查看rabbitmq运行状况
#docker logs rabbit
CentOS-Docker 安装 RabbitMQ 集群 (rabbitmq:3.7.16-management)
准备工作
1. 机器资源 (分别安装 docker 环境)
建议机器配置: centos7.x 4G 及以上 100GB 及以上 2 核及以上
192.168.1.101
192.168.1.102
192.168.1.103
2. 分别配置 hosts 文件,追加
$ vim /home/rabbitmq/hosts
192.168.1.101 rabbit1 rabbit1
192.168.1.102 rabbit2 rabbit2
192.168.1.103 rabbit3 rabbit3
下载镜像(每台机器)
$ docker pull rabbitmq:3.7.16-management
创建目录 (每台机器)
$ mkdir -p /home/rabbitmq
运行镜像(每台机器)
创建容器 (rabbit1)
$ docker run --restart=unless-stopped -h rabbit1 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit1 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_ERLANG_COOKIE=''xxx_2019'' rabbitmq:3.7.16-management
创建容器 (rabbit2)
$ docker run --restart=unless-stopped -h rabbit2 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit2 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_ERLANG_COOKIE=''xxx_2019'' rabbitmq:3.7.16-management
创建容器 (rabbit3)
$ docker run --restart=unless-stopped -h rabbit3 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit3 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_ERLANG_COOKIE=''xxx_2019'' rabbitmq:3.7.16-management
参数说明
#容器后台运行
-d
#容器的主机名为 rabbit_master,容器内部的 hostname
--hostname rabbit_master
#将宿主机目录 /home/rabbitmq 挂载到容器的 /var/lib/rabbitmq 目录。z 是一个标记,在 selinux 环境下使用。
-v /home/rabbitmq:/var/lib/rabbitmq:z
#设置 rabbitmq 的 cookie 可以自定义为其他文本,三个容器保持一致即可。
-e RABBITMQ_ERLANG_COOKIE=''xxx_2019''
绑定集群
将 myrabbit1 节点重置
$ docker exec -it myrabbit1 bash
$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl start_app
将 myrabbit2 节点加入集群
$ docker exec -it myrabbit2 bash
$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit@rabbit1 && \
rabbitmqctl start_app
将 myrabbit3 节点加入集群
$ docker exec -it myrabbit3 bash
$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit@rabbit2 && \
rabbitmqctl start_app
查询集群状态
$ rabbitmqctl cluster_status
故障节点的处理
$ docker exec -it rabbit2 /bin/bash
$ rabbitmqctl stop_app
#在一个正常的节点上移除有问题的节点
$ docker exec -it rabbit1 /bin/bash
$ rabbitmqctl forget_cluster_node rabbit@rabbit2
使用说明
springboot 集成
spring.rabbitmq.addresses=192.168.1.101:5672,192.168.1.102:5672,192.168.1.103:5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456
spring.rabbitmq.virtual-host=/#支持手动 ack 模式
spring.rabbitmq.listener.simple.acknowledge-mode=manual
#每个并发的预取条数
spring.rabbitmq.listener.simple.prefetch=10
#并发数
spring.rabbitmq.listener.simple.concurrency=3
#最大并发数
spring.rabbitmq.listener.simple.max-concurrency=10
spring.rabbitmq.listener.direct.acknowledge-mode=manual
队列模式分为普通模式和镜像模式,集群模式建议直接使用镜像队列
1. 全部节点镜像策略创建
2. 指定节点数镜像策略创建
参数说明
Pattern 模式:"^" 为全部;"^all-" 为所有 all - 开头
Priority 优先级:建议 10,比较耗费资源
Definition 定义参数:
ha-mode=all 或 exactly;
ha-sync-mode=automatic;
ha-params=2(ha-mode=exactly);
CentOS-Docker安装RabbitMQ集群(rabbitmq:3.7.16-management)
准备工作
1.机器资源(分别安装docker环境)
建议机器配置: centos7.x 4G及以上 100GB及以上 2核及以上
192.168.1.101
192.168.1.102
192.168.1.103
2.分别配置hosts文件,追加
$ vim /home/rabbitmq/hosts
192.168.1.101 rabbit1 rabbit1
192.168.1.102 rabbit2 rabbit2
192.168.1.103 rabbit3 rabbit3
下载镜像(每台机器)
$ docker pull rabbitmq:3.7.16-management
创建目录 (每台机器)
$ mkdir -p /home/rabbitmq
运行镜像(每台机器)
创建容器(rabbit1)
$ docker run --restart=unless-stopped -h rabbit1 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit1 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_ERLANG_COOKIE='xxx_2019' rabbitmq:3.7.16-management
创建容器(rabbit2)
$ docker run --restart=unless-stopped -h rabbit2 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit2 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_ERLANG_COOKIE='xxx_2019' rabbitmq:3.7.16-management
创建容器(rabbit3)
$ docker run --restart=unless-stopped -h rabbit3 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit3 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_ERLANG_COOKIE='xxx_2019' rabbitmq:3.7.16-management
参数说明
#容器后台运行
-d
#容器的主机名为 rabbit_master,容器内部的hostname
--hostname rabbit_master
#将宿主机目录/home/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。
-v /home/rabbitmq:/var/lib/rabbitmq:z
#设置rabbitmq的cookie可以自定义为其他文本,三个容器保持一致即可。
-e RABBITMQ_ERLANG_COOKIE='xxx_2019'
绑定集群
将myrabbit1节点重置
$ docker exec -it myrabbit1 bash
$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl start_app
将myrabbit2节点加入集群
$ docker exec -it myrabbit2 bash
$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit@rabbit1 && \
rabbitmqctl start_app
将myrabbit3节点加入集群
$ docker exec -it myrabbit3 bash
$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit@rabbit2 && \
rabbitmqctl start_app
查询集群状态
$ rabbitmqctl cluster_status
故障节点的处理
$ docker exec -it rabbit2 /bin/bash
$ rabbitmqctl stop_app
#在一个正常的节点上移除有问题的节点
$ docker exec -it rabbit1 /bin/bash
$ rabbitmqctl forget_cluster_node rabbit@rabbit2
使用说明
springboot集成
spring.rabbitmq.addresses=192.168.1.101:5672,192.168.1.102:5672,192.168.1.103:5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456
spring.rabbitmq.virtual-host=/#支持手动ack模式
spring.rabbitmq.listener.simple.ackNowledge-mode=manual
#每个并发的预取条数
spring.rabbitmq.listener.simple.prefetch=10
#并发数
spring.rabbitmq.listener.simple.concurrency=3
#最大并发数
spring.rabbitmq.listener.simple.max-concurrency=10
spring.rabbitmq.listener.direct.ackNowledge-mode=manual
队列模式分为普通模式和镜像模式,集群模式建议直接使用镜像队列
1.全部节点镜像策略创建
2.指定节点数镜像策略创建
参数说明
Pattern 模式:"^"为全部;"^all-"为所有all-开头
Priority 优先级:建议10,比较耗费资源
DeFinition 定义参数:
ha-mode=all 或 exactly;
ha-sync-mode=automatic;
ha-params=2(ha-mode=exactly);
CentOS-Docker安装RabbitMQ集群(rabbitmq:3.8.9-management)
准备工作
1.机器资源(分别安装docker环境)
建议机器配置: centos7.x 4G及以上 100GB及以上 2核及以上
192.168.1.101
192.168.1.102
192.168.1.103
2.分别配置hosts文件,追加
$ vim /home/rabbitmq/hosts
192.168.1.101 rabbit1 rabbit1
192.168.1.102 rabbit2 rabbit2
192.168.1.103 rabbit3 rabbit3
下载镜像(每台机器)
$ docker pull rabbitmq:3.8.9-management
创建目录 (每台机器)
$ mkdir -p /home/rabbitmq
运行镜像(每台机器)
创建容器(rabbit1)
$ docker run --restart=unless-stopped -h rabbit1 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit1 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 rabbitmq:3.8.9-management
创建容器(rabbit2)
$ docker run --restart=unless-stopped -h rabbit2 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit2 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
rabbitmq:3.8.9-management
创建容器(rabbit3)
$ docker run --restart=unless-stopped -h rabbit3 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit3 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
rabbitmq:3.8.9-management
参数说明
#容器后台运行
-d
#容器的主机名为 rabbit1,容器内部的hostname
-h rabbit1
#将宿主机目录/home/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。
-v /home/rabbitmq:/var/lib/rabbitmq:z
#设置rabbitmq的cookie可以自定义为其他文本,三个容器保持一致即可。
-e RABBITMQ_ERLANG_COOKIE=''xxx_2020'' 参数已过期,需要修改erlang.cookie
机器分别配置并重启容器(erlang.cookie)
$ chmod 600 /home/rabbitmq/.erlang.cookie
$ vim /home/rabbitmq/.erlang.cookie
xxx_2020
绑定集群
将myrabbit1节点重置
$ docker exec -it myrabbit1 bash
$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl start_app
将myrabbit2节点加入集群
$ docker exec -it myrabbit2 bash
$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit@rabbit1 && \
rabbitmqctl start_app
将myrabbit3节点加入集群
$ docker exec -it myrabbit3 bash
$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit@rabbit2 && \
rabbitmqctl start_app
查询集群状态
$ rabbitmqctl cluster_status
故障节点的处理
$ docker exec -it rabbit2 /bin/bash
$ rabbitmqctl stop_app
#在一个正常的节点上移除有问题的节点
$ docker exec -it rabbit1 /bin/bash
$ rabbitmqctl forget_cluster_node rabbit@rabbit2
使用说明
springboot集成
spring.rabbitmq.addresses=192.168.1.101:5672,192.168.1.102:5672,192.168.1.103:5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456
spring.rabbitmq.virtual-host=/#支持手动ack模式
spring.rabbitmq.listener.simple.acknowledge-mode=manual
#每个并发的预取条数
spring.rabbitmq.listener.simple.prefetch=10
#并发数
spring.rabbitmq.listener.simple.concurrency=3
#最大并发数
spring.rabbitmq.listener.simple.max-concurrency=10
spring.rabbitmq.listener.direct.acknowledge-mode=manual
队列模式分为普通模式和镜像模式,集群模式建议直接使用镜像队列
1.全部节点镜像策略创建
2.指定节点数镜像策略创建
参数说明
Pattern 模式:"^"为全部;"^all-"为所有all-开头
Priority 优先级:建议10,比较耗费资源
Definition 定义参数:
ha-mode=all 或 exactly;
ha-sync-mode=automatic;
ha-params=2(ha-mode=exactly);
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账号
关于docker部署rabbitmq和docker部署rabbitmq集群的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于CentOS-Docker 安装 RabbitMQ 集群 (rabbitmq:3.7.16-management)、CentOS-Docker安装RabbitMQ集群(rabbitmq:3.7.16-management)、CentOS-Docker安装RabbitMQ集群(rabbitmq:3.8.9-management)、centos7 docker 部署rabbitmq集群的相关知识,请在本站寻找。
本文标签: