• 《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集群设置简单,主要包含,交换机高可用和队列高可用,掌握两种集群架构。

  • 相关阅读:
    [Reproduced]BIOS -- Basic Input and Output System
    What is CSM mode?
    java.lang.UnsupportedOperationException: Can't convert to color: type=0x2 In TextInputLayout
    What is “passive data structure” in Android/Java?
    Android Studio 手动配置 Gradle
    ScrollView内嵌ListView,ListView显示不全及滑动冲突的问题
    Android安全开发之Provider组件安全
    Android permission and uses-permission
    PriorityBlockingQueue(带优先级的阻塞队列)
    Lesson: Generics (Updated)
  • 原文地址:https://www.cnblogs.com/jssj/p/13978987.html
Copyright © 2020-2023  润新知