Docker搭建RabbitMQ集群

Docker搭建RabbitMQ集群

Docker安装

见官网


RabbitMQ镜像下载及配置

此博文


集群搭建

  1. 首先,我们需要启动运行RabbitMQ

    docker run -d --hostname my-rabbit -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 15672:15672 -p 25672:25672 -p 4369:4369 -v $PWD/rabbitmq-data:/var/rabbitmq/lib --name my_rabbitmq rabbitmq:latest

    参数说明:

    ? -d:后台进程运行

    ? --hostname:主机名称

    ? -p:端口映射

    ? 15672:http访问端口

    ? 5672:AMQP访问端口

    ? -v:文件映射

    ? --name:容器名称

  2. 启动多个RabbitMQ
    docker run -d --hostname my-rabbit -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 15672:15672 -p 25672:25672 -p 4369:4369 -v $PWD/rabbitmq-data:/var/rabbitmq/lib --name my_rabbitmq1 rabbitmq:latest
    docker run -d --hostname my-rabbit -p 5673:5672 -p 15673:15672 -v $PWD/rabbitmq-data:/var/rabbitmq/lib --name my_rabbitmq2 rabbitmq:latest

    这样我们就可以使用http://ip:15672http://ip:15673 进行访问,默认账号密码均为guest.


    搭建RabbitMQ集群

    步骤一:安装RabbitMQ;

    docker run -d --hostname my-rabbit1 --name my_rabbitmq1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE=‘rabbitcookie‘ rabbitmq:latest

    参数说明:

    ? -e:设置环境变量

    docker run -d --hostname my-rabbit2 --name my_rabbitmq2 -p 5673:5672 --link my_rabbitmq1:my-rabbit1 -e RABBITMQ_ERLANG_COOKIE=‘rabbitcookie‘ rabbitmq:latest
    docker run -d --hostname my-rabbit3 --name my_rabbitmq3 -p 5674:5672 --link my_rabbitmq1:my-rabbit1 --link my_rabbitmq2:my-rabbit2 -e RABBITMQ_ERLANG_COOKIE=‘rabbitcookie‘ rabbitmq:latest

    参数说明:

    ? --link:添加链接到另一个容器

    ***注意点:

    ? 多个容器之间使用"--link"连接,此属性不能少;

    ? Erlang Cookie值必须相同,也就是RABBITMQ_ERLANG_COOKIE参数的值必须相同,原因见下文.

    步骤二:加入RabbitMQ节点到集群;

    设置节点1:

    docker exec -it my_rabbitmq1 /bin/bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl start_app
    exit

    设置节点2:

    docker exec -it my_rabbitmq2 /bin/bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl join_cluster --ram [email protected]
    rabbitmqctl start_app
    exit

    设置节点3:

    docker exec -it my_rabbitmq3 /bin/bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl join_cluster --ram [email protected]
    rabbitmqctl start_app
    exit

    参数说明:

    ? --ram:表示设置为内存节点,忽略次参数默认为磁盘节点.

    设置好之后,使用 http://ip:15672 进行访问,默认账号密码是guest/guest.


    配置相同Erlang Cookie

    有些特殊的情况,比如已经运行一段时间的几个单个物理机,我们在之前没有设置过相同的Erlang Cookie值,现在我们要把单个的物理机部署成集群,实现我们需要同步Erlang的Cookie值.

    1.为什么要配置相同的Erlang Cookie?

    因为RabbitMQ使用Erlang实现的,Erlang Cookie相当于不同节点之间相互通讯的秘钥,Erlang节点通过交换Erlang Cookie获得认证.

    2.Erlang Cookie的位置

    要想知道Erlang Cookie的位置,首先要取的RabbitMQ启动日志里面的home dir路径,作为根路径.可使用:

    docker logs 容器名称

    查看.

    3.复制Erlang Cookie到其他RabbitMQ节点

    获取到第一个RabbitMQ的Erlang Cookie之后,只需要把这个文件复制到其他RabbitMQ节点即可.

    物理机和容器之间复制命令如下:

    ? 容器复制文件到物理机:

    docker cp 容器名称:容器目录 物理机目录

    ? 物理机复制文件到容器:

    docker cp 物理机目录 容器名称:容器目录

    设置Erlang Cookie文件权限:

    chmod 600 /var/lib/rabbitmq/.erlang.cookie

注意事项

按照以上步骤搭建完成后,每个RabbitMQ服务器均需手动开启rabbitmq_management插件,方可在浏览器中输入http://localhost:15672进入RabbitMQ管理界面,在其中可看到相关节点的信息.

如何开启插件

原文地址:https://www.cnblogs.com/Alva-mu/p/9497290.html

时间: 2024-08-11 05:32:06

Docker搭建RabbitMQ集群的相关文章

kubernetes docker 搭建rabbitmq集群

kubectl delete pod rabbitmq-node1 rabbitmq-node2 rabbitmq-node3 kubectl create -f pod-rabbitmq-node1-vm17.yamlkubectl create -f pod-rabbitmq-node2-vm18.yamlkubectl create -f pod-rabbitmq-node3-vm19.yaml kubectl exec -ti rabbitmq-node2 kubectl exec ra

使用Docker部署RabbitMQ集群

概述 本文重点介绍的Docker的使用,以及如何部署RabbitMQ集群,最基础的Docker安装,本文不做过多的描述,读者可以自行度娘. Windows10上Docker的安装 因为本人用的是Windows系统,所有推荐一个不错的安装文章,详见:https://blog.csdn.net/xiaoping0915/article/details/75094857 注意:设置阿里云Docker Hub加速,配置Registry mirrors地址"https://j0andt2p.mirror.

Docker搭建PXC集群

如何创建MySQL的PXC集群 下载PXC集群镜像文件 下载 docker pull percona/percona-xtradb-cluster 重命名 [[email protected] ~]# docker tag docker.io/percona/percona-xtradb-cluster pxc 创建内部网络 处于安全考虑,需要给PXC集群实例创建Docker内部网络 创建网段: [[email protected] ~]# docker network create --sub

Windows环境下搭建rabbitmq集群与负载

欢迎提出意见及建议,发现错误请留言 需要的文件下载: 百度云:链接:https://pan.baidu.com/s/1gpZa2NjNxviEnihjS2Viuw  提取码:39hi  复制这段内容后打开百度网盘手机App,操作更方便哦 蓝奏云:下载:https://www.lanzous.com/i54x5da 密码:cgb9 参考博文: https://blog.csdn.net/elie_yang/article/details/86657851 https://blog.csdn.net

docker 搭建zookeeper集群和kafka集群

docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用. Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.Compose 定位是 「定义和运行多个 Docker 容器的应用(Defining and running multicontainer Docker appl

Centos7搭建RabbitMQ集群

本片博客简单介绍rabbitmq单节点以及集群的配置安装,使用和rabbitmq的命令,和图形界面简单的介绍使用 话不多说直接进入正题,首先介绍下rabbitmq: rabbitmq的历史:RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实

使用 Docker搭建 ZooKeeper 集群

1.镜像下载 docker pull zookeeper 2.启动 ZK 镜像 >>> docker run --name my_zookeeper -d zookeeper:latest 这个命令会在后台运行一个 zookeeper 容器, 名字是 my_zookeeper, 并且它默认会导出 2181 端口.接着我们使用: docker logs -f my_zookeeper 3.使用 ZK 命令行客户端连接 ZK 因为刚才我们启动的那个 ZK 容器并没有绑定宿主机的端口, 因此我

通过docker搭建ELK集群

单机ELK,另外两台服务器分别有一个elasticsearch节点,这样形成一个3节点的ES集群. 可以先尝试单独搭建es集群或单机ELK https://www.cnblogs.com/lz0925/p/12018209.html // 单机ELK https://www.cnblogs.com/lz0925/p/12011026.html // 三节点es集群 注意点 服务器内存:要求不低于8G,如果4G,没有跑其他程序的话,应该也可以,低于4G基本不用考虑. 我的系统:阿里云centOS7

Docker搭建redis-cluster集群三主三备

环境准备 系统:centos7.7 redis:5.0.5 master1:192.168.33.9:7071 master2:192.168.33.10:7072 master3:192.168.33.11:7073 slave1:192.168.33.9:7074 slave2:192.168.33.10:7075 slave3:192.168.33.11:7076 一.搭建redis集群(以下步骤在每台服务器上都要执行) 1.>安装docker yum -y install docker