Docker搭建RabbitMQ集群的方法步骤

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享
免费资源网 – https://freexyz.cn/

目录集群模式介绍1、普通集群的搭建1.1、普通集群架构介绍1.2、环境准备1.3、集群搭建2、镜像集群的搭建2.1、配置镜像集群的策略

集群模式介绍

RabbitMQ集群模式有两种:普通模式和镜像模式

普通模式:默认模式,多个节点组成的普通集群,消息随机发送到其中一个节点的队列上,其他节点仅保留元数据,各个节点仅有相同的元数据,即队列结构、交换器结构、交换器与队列绑定关系、vhost。消费者消费消息时,会从各个节点拉取消息,如果保存消息的节点故障,则无法消费消息,如果做了消息持久化,那么得等该节点恢复,然后才可被消费;如果没有持久化的话,就会产生消息丢失的现象。镜像模式:它是在普通模式的基础上,把需要的队列做成镜像队列,存在于多个节点来实现高可用(HA)。该模式解决了上述问题,Broker会主动地将消息实体在各镜像节点间同步,在consumer取数据时无需临时拉取。该模式带来的副作用也很明显,除了降低系统性能外,如果镜像队列数量过多,加之大量的消息进入,集群内部的网络带宽将会被大量消耗。通常地,对可靠性要求较高的场景建议采用镜像模式。

1、普通集群的搭建

1.1、普通集群架构介绍

架构图

Docker搭建RabbitMQ集群的方法步骤插图

1.2、环境准备

拉取RabbitMQ镜像

docker pull rabbitmq:3.7-management

Docker搭建RabbitMQ集群的方法步骤插图1

创建并运行三个RabbitMQ容器节点,一主两从

命令如下:

#rabbitmqCluster01 主节点
docker run -d –hostname rabbitmq01 –name rabbitmqCluster01 -v `pwd`/rabbitmq01:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE=rabbitmqCookie rabbitmq:3.7-management

#rabbitmqCluster02 从节点
docker run -d –hostname rabbitmq02 –name rabbitmqCluster02 -v `pwd`/rabbitmq02:/var/lib/rabbitmq -p 7002:15672 -p 5673:5672 -e RABBITMQ_ERLANG_COOKIE=rabbitmqCookie –link rabbitmqCluster01:rabbitmq01 rabbitmq:3.7-management

#rabbitmqCluster03 从节点
docker run -d –hostname rabbitmq03 –name rabbitmqCluster03 -v `pwd`/rabbitmq03:/var/lib/rabbitmq -p 8002:15672 -p 5674:5672 -e RABBITMQ_ERLANG_COOKIE=rabbitmqCookie –link rabbitmqCluster01:rabbitmq01 –link rabbitmqCluster02:rabbitmq02 rabbitmq:3.7-management

-d 后台运行容器;

–name 指定容器名;

-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号),控制台端口用于管理rabbitmq,应用访问端口号为rabbitclient等应用访问。;

-v 映射目录或文件,pwd 当前目录;

–hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);

-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码,RABBITMQ_ERLANG_COOKIE 节点认证作用,部署集成时 需要同步该值)

–link 用于容器的链接

查看运行中的三个RabbitMQ容器:

Docker搭建RabbitMQ集群的方法步骤插图2

登录 RabbitMQ 控制台界面:

rabbitmq01 节点:

Docker搭建RabbitMQ集群的方法步骤插图3

rabbitmq02 节点:

Docker搭建RabbitMQ集群的方法步骤插图4

rrabbitmq03 节点

Docker搭建RabbitMQ集群的方法步骤插图5

1.3、集群搭建

将rabbitmqCluster02 节点和 rabbitmqCluster03 节点加入 rabbitmqCluster01 创建集群

进入 rabbitmqCluster02 节点和 rabbitmqCluster03 节点,在两个节点分别执行一下加入集群的命令:

rabbitmqctl stop_app

rabbitmqctl reset
#rabbitmq01为rabbitmqCluster01容器中的hostname
rabbitmqctl join_cluster –ram rabbit@rabbitmq01

rabbitmqctl start_app

rabbitmqCluster02 节点:

Docker搭建RabbitMQ集群的方法步骤插图6

rabbitmq-slave1 节点:

Docker搭建RabbitMQ集群的方法步骤插图7

执行完后在任意节点查看集群状态:

rabbitmqctl cluster_status

如果出现如下显示,集群搭建成功:

Docker搭建RabbitMQ集群的方法步骤插图8

之后我们在主节点的web管理页可以看到两个从节点了:

Docker搭建RabbitMQ集群的方法步骤插图9

2、镜像集群的搭建

镜像集群的结构图

Docker搭建RabbitMQ集群的方法步骤插图10

2.1、配置镜像集群的策略

1、使用命令配置策略:

rabbitmqctl set_policy [-p Vhost] [–priority


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容