企业私有云之rabbitmq高可用

网友投稿 626 2023-03-14

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

企业私有云之rabbitmq高可用

默认openstack使用rabbitmq做信息队列,如果想是云高可用,那么需要对每个涉及的组件都进行高可用配置,本文主要介绍如何使用rabbitmq做高可用。

高可用的方法为:

通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收。这些节点通过 RabbitMQ HA 队列(镜像队列)进行消息队列结构复制。本方案中搭建 3 个节点,并且都是磁盘节点(所有节点状态保持一致,节点完全对等),只要有任何一个节点能够工作,RabbitMQ 集群对外就能提供服务。

通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收。这些节点通过 RabbitMQ HA 队列(镜像队列)进行消息队列结构复制。本方案中搭建 3 个节点,并且都是磁盘节点(所有节点状态保持一致,节点完全对等),只要有任何一个节点能够工作,RabbitMQ 集群对外就能提供服务。

环境为:系统centos 7.1rabbitmq版本是3.6.2主机信息

node1 10.10.33.163node2 10.10.33.166node3 10.10.33.167

node1 10.10.33.163node2 10.10.33.166node3 10.10.33.167

/etc/hosts配置为

10.10.33.163 ip-10-10-33-16310.10.33.166 ip-10-10-33-16610.10.33.167 ip-10-10-33-167

10.10.33.163 ip-10-10-33-16310.10.33.166 ip-10-10-33-16610.10.33.167 ip-10-10-33-167

下面是开始安装一、安装安装第三方库与rabbitmq

yum install -y epel-releaseyum install rabbitmq-server

yum install -y epel-releaseyum install rabbitmq-server

启动服务

systemctl enable rabbitmq-server.servicesystemctl start rabbitmq-server.service

systemctl enable rabbitmq-server.servicesystemctl start rabbitmq-server.service

二、配置在node1里配置

将node1的/var/lib/rabbitmq/.erlang.cookie复制到node2与node3

将node1的/var/lib/rabbitmq/.erlang.cookie复制到node2与node3

修改权限(所有节点)

chmod 400 /var/lib/rabbitmq/.erlang.cookiechown -R rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

chmod 400 /var/lib/rabbitmq/.erlang.cookiechown -R rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

在node2里配置

[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl stop_appStopping node 'rabbit@ip-10-10-33-166' ...[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl join_cluster rabbit@ip-10-10-33-163Clustering node 'rabbit@ip-10-10-33-166' with 'rabbit@ip-10-10-33-163' ...You have new mail in /var/spool/mail/root[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl start_appStarting node 'rabbit@ip-10-10-33-166' ...

[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl stop_appStopping node 'rabbit@ip-10-10-33-166' ...[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl join_cluster rabbit@ip-10-10-33-163Clustering node 'rabbit@ip-10-10-33-166' with 'rabbit@ip-10-10-33-163' ...You have new mail in /var/spool/mail/root[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl start_appStarting node 'rabbit@ip-10-10-33-166' ...

在node3里配置

[root@ip-10-10-33-167 my.cnf.d]# rabbitmqctl stop_appStopping node 'rabbit@ip-10-10-33-167' ...[root@ip-10-10-33-167 my.cnf.d]# rabbitmqctl join_cluster rabbit@ip-10-10-33-163Clustering node 'rabbit@ip-10-10-33-167' with 'rabbit@ip-10-10-33-163' ...[root@ip-10-10-33-167 my.cnf.d]# rabbitmqctl start_appStarting node 'rabbit@ip-10-10-33-167' ...

[root@ip-10-10-33-167 my.cnf.d]# rabbitmqctl stop_appStopping node 'rabbit@ip-10-10-33-167' ...[root@ip-10-10-33-167 my.cnf.d]# rabbitmqctl join_cluster rabbit@ip-10-10-33-163Clustering node 'rabbit@ip-10-10-33-167' with 'rabbit@ip-10-10-33-163' ...[root@ip-10-10-33-167 my.cnf.d]# rabbitmqctl start_appStarting node 'rabbit@ip-10-10-33-167' ...

查看集群状态

[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl cluster_statusCluster status of node 'rabbit@ip-10-10-33-166' ...[{nodes,[{disc,['rabbit@ip-10-10-33-163','rabbit@ip-10-10-33-166',                'rabbit@ip-10-10-33-167']}]}, {running_nodes,['rabbit@ip-10-10-33-163','rabbit@ip-10-10-33-167',                 'rabbit@ip-10-10-33-166']}, {cluster_name,<<"rabbit@ip-10-10-33-163">>}, {partitions,[]}, {alarms,[{'rabbit@ip-10-10-33-163',[]},          {'rabbit@ip-10-10-33-167',[]},          {'rabbit@ip-10-10-33-166',[]}]}]

[root@ip-10-10-33-166 my.cnf.d]# rabbitmqctl cluster_statusCluster status of node 'rabbit@ip-10-10-33-166' ...[{nodes,[{disc,['rabbit@ip-10-10-33-163','rabbit@ip-10-10-33-166', 'rabbit@ip-10-10-33-167']}]}, {running_nodes,['rabbit@ip-10-10-33-163','rabbit@ip-10-10-33-167', 'rabbit@ip-10-10-33-166']}, {cluster_name,<<"rabbit@ip-10-10-33-163">>}, {partitions,[]}, {alarms,[{'rabbit@ip-10-10-33-163',[]}, {'rabbit@ip-10-10-33-167',[]}, {'rabbit@ip-10-10-33-166',[]}]}]

三、集群高可用配置设计镜像队列策略在任何一个节点执行

[root@ip-10-10-33-163 ~]# rabbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}'Setting policy "ha-all" for pattern "^(?!amq\\.).*" to "{\"ha-mode\": \"all\"}" with priority "0" ...

[root@ip-10-10-33-163 ~]# rabbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}'Setting policy "ha-all" for pattern "^(?!amq\\.).*" to "{\"ha-mode\": \"all\"}" with priority "0" ...

上一篇:LNMP的搭建及URL重写测试
下一篇:批量部署Windows NanoServer 2016 With Hyper-V
相关文章

 发表评论

暂时没有评论,来抢沙发吧~