《RabbitMQ 消息中间件》Rabbit集群架构

前言

在现在微服务架构下,RabbitMQ也需要支持集群,保证高可用。

集群架构

1. 普通集群模式

1.1 主节点的队列,从节点是没有的。但是从节点可以看到。

1.2 消费者可以监听从节点,从节点会找主节点要消息。

1.3 Excahge是会主从同步的。

1.4 故障无法自动转移。

2. 镜像集群

2.1 通过镜像同步,实现Exchange和Queue的同步。

2.2 主节点故障,从节点会自动切换成主节点,正常工作。

集群搭建(普通集群)

1. 准备三台机器:

主节点:1.0.0.1

从节点:1.0.0.2

从节点:1.0.0.3

2. 三台机器都需要安装RabbitMQ:https://www.cnblogs.com/jssj/p/13910643.html

3. 保证erlang的cookie是一样的。

cat /var/lib/rabbitmq/.erlang.cookie    -- 三台机器都需要改成一样。

4. 启动三台机器的RabbitMQ。

rabbitmq-server -detached     -- 后台启动,前端页面将失效,只能通过linux命令查询MQ的消息和操作。

5. 查询RabbitMQ启动状态

rabbitmqctl cluster_status

6. 停止从节点

rabbitmqctl stop_app

7. 从节点执行加入集群命令

rabbitmqctl join_cluster rabbit@mq1    -- 其中mq1主节点的主机名

8. 从节点启动

rabbitmqctl start_app   -- 这个时候前端插件有可以使用了

集群效果图:

集群已经搭建完毕:

rabbitmqctl cluster_status

查看集群状态

集群搭建(镜像集群)

策略查询:

rabbitmqctl list_policies

策略说明:

1. 设置镜像策略:

rabbitmqctl set_policy ha-all '^hello' '["ha-mode":"all","ha-sync-mode":"automatic"]'    -- ha-all 是策略名,^hello 表示符合该表达式的队列。

镜像集群就设置好了,也可以在页面设置:

设置完成之后:

 

 界面就队列就变成这样了,主节点宕机会自动切换主节点,主节点再次启动又会自动成为集群的从节点。

策略删除:

rabbitmqctl clear_policy ha-all

总结

rabbitmq集群设置简单,主要包含,交换机高可用和队列高可用,掌握两种集群架构。

posted @ 2020-11-17 20:06  加速丨世界  阅读(158)  评论(0编辑  收藏  举报