RabbitMQ集群搭建(Docker环境)

这篇具有很好参考价值的文章主要介绍了RabbitMQ集群搭建(Docker环境)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

rabbitmq集群搭建,这里我们采用docker的方式来进行搭建,确定安装了docker环境

1.拉取镜像

docker pull rabbitmq:3.6.15-management

2.创建rabbitmq容器

创建rabbitmq容器1:

docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

创建rabbitmq容器2:

docker run -d --hostname rabbit2 --name myrabbit2 -p 15673:15672 -p 5673:5672 --link=myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

执行成功后如下图

RabbitMQ集群搭建(Docker环境)

解释:

--link <name or id>:alias
其中,name和id是源容器的name和id,alias是源容器在link下的别名。

--link  用于在容器中进行通信的时候需要使用到的。


-e RABBITMQ_ERLANG_COOKIE='rabbitcookie'
其中 -e 设置环境变量  变量名为:RABBITMQ_ERLANG_COOKIE  值为:rabbitcookie  该值可以任意。 
但是一定要注意,两个容器的cookie值一定要一样才行。他的作用用于发现不同的节点,并通过该cookie进行自动校验和通信使用。

--hostname rabbit2  
其中:--hostname 用于设置容器内部的hostname名称,如果不设置,那就会自动随机生成一个hostname字,如下图。
这里一定要设置。因为rabbitmq的节点数据进行通信加入集群的时候需要用hostname作为集群名称。

RabbitMQ集群搭建(Docker环境)

 3.配置rabbitmq集群

这里我们使用 集群名 rabbit@rabbit1 ,将节点2 加入到节点1号中。

3.1配置rabbit1

进入到myrabbit1容器内部

docker exec -it myrabbit1 bash

配置节点

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit

执行如下图:

RabbitMQ集群搭建(Docker环境)

rabbitmqctl stop_app  --- 表示关闭节点
rabbitmqctl reset     --- 重新设置节点配置
rabbitmqctl start_app --- 重新启动 (此处不需要设置 ,将该节点作为集群master,其他节点加入到该节点中)
exit ---退出容器

3.2配置rabbit2

进入到myrabbit2容器内部

 docker exec -it myrabbit2 bash

配置节点

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit

执行如下图:

RabbitMQ集群搭建(Docker环境)

 解释:

rabbitmqctl join_cluster --ram rabbit@rabbit1

--  用于将该节点加入到集群中  
--  ram   设置为内存存储,默认为 disc 磁盘存储,如果为磁盘存储可以不用配置ram
-- rabbit@rabbit1   该 配置 为节点集群名称:集群名称为:rabbit@server  而server指定就是hostname的名称。

配置完成,打开web管理界面http://机器IP:15672,账密guest/guest,如下图所示:

RabbitMQ集群搭建(Docker环境) 4.配置镜像队列

如上,我们已经搭建好了集群,但是并不能做到高可用,所以需要配置升级为镜像队列。

在任意的节点(A或者B)中执行如下命令:

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

执行正确如下图

RabbitMQ集群搭建(Docker环境)

 解释:
rabbitmqctl set_policy 
    用于设置策略
ha-all 
    表示设置为镜像队列并策略为所有节点可用 ,意味着 队列会被(同步)到所有的节点,当一个节点被加入到集群中时,也会同步到新的节点中,此策略比较保守,性能相对低,对接使用半数原则方式设置(N/2+1),例如:有3个结点 此时可以设置为:ha-two 表示同步到2个结点即可。
"^"  表示针对的队列的名称的正则表达式,此处表示匹配所有的队列名称
'{"ha-mode":"all"}' 设置一组key/value的JSON 设置为高可用模式 匹配所有exchange

此时查看web管理界面:添加一个队列test_queue,如下图已经可以出现结果为有一个结点,并且是ha-all模式(镜像队列模式)

RabbitMQ集群搭建(Docker环境)文章来源地址https://www.toymoban.com/news/detail-429280.html

到了这里,关于RabbitMQ集群搭建(Docker环境)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux环境下,通过Docker搭建及配置RabbitMQ

    😊 @ 作者: 一恍过去 💖 @ 主页: https://blog.csdn.net/zhuocailing3390 🎊 @ 社区: Java技术栈交流 🎉 @ 主题: Linux环境下,通过Docker搭建及配置RabbitMQ ⏱️ @ 创作时间: 2022年07月17日 RabbitMQ是一个开源的消息队列中间件,用于在应用程序之间进行可靠的消息传递。它实现了高级消

    2024年02月15日
    浏览(40)
  • (一)丶RabbitMQ搭建及配置在Linux+Docker环境下

    RabbitMQ依赖的是Erlang语言,所以要先安装Erlang的环境。Erlang在1991年由爱立信公司向用户推出了第一个版本,经过不断的改进完善和发展,在1996年爱立信又为所有的Erlang用户提供了一个非常实用且稳定的OTP软件库并在1998年发布了第一个开源版本。Erlang同时支持的操作系统有l

    2024年04月09日
    浏览(45)
  • (二)RabbitMQ实战——rabbitmq高可用集群搭建

    本节内容是关于rabbitmq高可用集群的部署搭建,使用的是centos7系统,我们准备三台服务器作为rabbitmq的高可用服务器,rabbitmq集群本身不是天然支持高可用的,我们通过配置rabbitmq服务器的镜像队列,以确保消息可以在集群中的多个节点上进行复制存储,提高可用性和容错性,

    2024年04月29日
    浏览(40)
  • linux安装搭建配置docker,mysql,nacos,redis哨兵集群,kafka,elasticsearch,kibana,IK分词器,安装Rabbitmq,安装并配置maven

    目录 搭建docker 1.2安装yum工具  1.3更新阿里镜像源 1.4下载docker 1.5关闭防火墙 1.6启动docker 1.7查看docker版本 1.8配置阿里云镜像 1.8.1 创建文件夹 1.8.2在文件夹内新建一个daemon.json文件 1.8.3重载文件 1.9重启docker 2安装MySQL 3安装nacos 3.1拉取nacos镜像并启动 3.2启动nacos命令 3.3命令敲完

    2024年02月03日
    浏览(57)
  • RabbitMQ集群搭建

    说明:集群,不管是Redis集群,还是MQ集群,都是为了提高系统的可用性,使系统不至于因为Redis、MQ宕机而崩溃。本文介绍RabbitMQ集群搭建,RabbitMQ集群分为以下三类: 普通集群 镜像集群 仲裁队列 普通集群下,节点之间并不会进行数据同步,而是节点之间存在引用,当消费者

    2024年02月16日
    浏览(41)
  • RabbitMQ高可用集群搭建

    理论简介 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ、RabbitMQ、Kafka、RocketMQ等。 Rabbi

    2024年02月20日
    浏览(43)
  • 【RabbitMQ】之高可用集群搭建

    一、RabbitMQ 集群原理 1、默认集群原理 2、镜像集群原理 3、负载均衡方案 二、RabbitMQ 高可用集群搭建 1、RabbitMQ 集群搭建 2、配置镜像队列 3、HAProxy 环境搭建 4、Keepalived 环境搭建 3-1、RabbitMQ 集群简介 单台 RabbitMQ 服务器处理消息的能力是有瓶颈的,而且可靠性还无法保证,所

    2024年02月15日
    浏览(43)
  • RabbitMQ高级-应用问题、集群搭建

    需求:100%确保消息发送成功 幂等性指一次和多次请求某一资源,对于资源本身应该具有同样的结果。也就是说,其任意多次执行对资源本身所产生的影响均与第一次执行的影响相同 在MQ中是指,消费多条相同的消息,得到与消费该消息一次相同的结果 集群方案原理 RabbitMQ这

    2024年04月25日
    浏览(25)
  • rabbitmq第四课-RabbitMQ高可用集群架构详解以及生产环境最佳实践

    之前通过单机环境搭建起来的RabbitMQ服务有一个致命的问题,那就是服务不稳定的问题。如果只是单机RabbitMQ的服务崩溃了,那还好,大不了重启下服务就是了。 但是如果是服务器的磁盘出问题了,那问题就大了。因为消息都是存储在Queue里的,Queue坏了,意味着消息就丢失了

    2024年02月11日
    浏览(49)
  • Docker高级——Docker部署RabbitMQ(单机,集群,仲裁队列)

    我们在Centos7虚拟机中使用Docker来安装。 方式一:在线拉取 方式二:从本地加载 在课前资料已经提供了镜像包: 上传到虚拟机中后,使用命令加载镜像即可: 执行下面的命令来运行MQ容器: 接下来,我们看看如何安装RabbitMQ的集群。 在RabbitMQ的官方文档中,讲述了两种集群

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包