ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RabbitMQ单机多实例集群搭建

2022-01-28 21:35:06  阅读:154  来源: 互联网

标签:rabbit1 单机 RABBITMQ rabbitmq rabbitmqctl 实例 集群 RabbitMQ


摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理

一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。

11.1 集群方案的原理

RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现)。因此,RabbitMQ天然支持Clustering。这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样通过ZooKeeper分别来实现HA方案和保存集群的元数据。集群是保证可靠性的一种方式,同时可以通过水平扩展以达到增加消息吞吐量能力的目的。

 单机多实例部署

由于某些因素的限制,有时候你不得不在一台机器上去搭建一个rabbitmq集群,这个有点类似zookeeper的单机版。真实生成环境还是要配成多机集群的。有关怎么配置多机集群的可以参考其他的资料,这里主要论述如何在单机中配置多个rabbitmq实例。

主要参考官方文档:Clustering Guide — RabbitMQ 

首先确保RabbitMQ运行没有问题

systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.service

停止rabbitmq服务

systemctl stop rabbitmq-server.service

启动三个节点做集群演示:

由于web管理插件端口占用,所以还要指定其web插件占用的端口号。

 RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit1 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672}]"  rabbitmq-server -detached
RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit2 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]"  rabbitmq-server -detached
 RABBITMQ_NODE_PORT=5674 RABBITMQ_NODENAME=rabbit3 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]"  rabbitmq-server -detached

启动三个节点后,分别访问三个节点,后台管理页面,看看是否OK.

停止服务命令:

rabbitmqctl -n rabbit1 stop
rabbitmqctl -n rabbit2 stop
rabbitmqctl -n rabbit3 stop

rabbit1操作作为主节点:

rabbitmqctl -n rabbit1 stop_app  

rabbitmqctl -n rabbit1 reset     

 rabbitmqctl -n rabbit1 start_app

rabbit2操作为从节点:

rabbitmqctl -n rabbit2 stop_app

 rabbitmqctl -n rabbit2 reset

rabbitmqctl -n rabbit2 join_cluster rabbit1

 rabbitmqctl -n rabbit2 start_app

rabbit3操作为从节点:

rabbitmqctl -n rabbit3 stop_app

 rabbitmqctl -n rabbit3 reset

rabbitmqctl -n rabbit3 join_cluster rabbit1

 rabbitmqctl -n rabbit3 start_app

查看集群状态:

rabbitmqctl -n rabbit1 cluster_status

 

标签:rabbit1,单机,RABBITMQ,rabbitmq,rabbitmqctl,实例,集群,RabbitMQ
来源: https://blog.csdn.net/weixin_45972425/article/details/122736694

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有