美文网首页
(4)RabbitMQ 4种集群架构(3)

(4)RabbitMQ 4种集群架构(3)

作者: hedgehog1112 | 来源:发表于2020-11-17 17:19 被阅读0次

    概要:主备模式(简单)、远程模式(少)、镜像模式(用得最多)、 多活模式(多)

    一. 主备模式(简单)

        也称Warren (兔子窝) 模式。并发和数据量不高,好用且简单。

        也就是一个主/备方案,主读写,备不提供读写。主挂切备,原主节恢复变备,和 activeMQ 用 zookeeper 做主/备一样,也可一主多备。

    HaProxy 配置:

    listen rabbitmq_cluster

    bind 0.0.0.0:567   # 配置 tcp 模式

    mode tcp  # 简单的轮询

    balance roundrobin   # 主节点 roundrobin  随机

    server 你的76机器 hostname  192.168.11.76:5672 check inter 5000 rise 2 fall 2

    server 你的77机器 hostname  192.168.11.77:5672 backup check inter 5000 rise 2 fall 2   # 备用节点

        注意了,上面的 rabbitMQ 集群节点配置 # inter 每隔 5 秒对 mq 集群做健康检查, 2 次正确证明服务可用,2 次失败证明服务器不可用,并且配置主备机制

    二. 远程模式(少)

        1、可实现双活,简称 shovel,把消息进行不同数据中心复制工作,跨地域MQ 集群互联,远距离通信和复制。ps:rabbitMQ 早期架构,很少用

        例:用户地区 1 下单,发消息到 1 ,发现 MQ 超过设定阈值,负载过高,消息被转到 地区 2 ,分摊服务压力。

        近端同步确认,远端异步确认,提高确认速度,保证可靠性。    

    2、shovel 模式拓扑图

        消息到 exchange,负载不高放正常的 warehouse_goleta 队列中,过高放到 backup_orders 队列中。backup_orders 队列通过 shovel 与另外MQ 集群同步,发到第二个 MQ 集群

    3、shovel 集群的配置,首先启动 rabbitmq 插件,命令如下:

        rabbitmq-plugins enable amqp_client

        rabbitmq-plugins enable  rabbitmq_shovel

        在 /etc/rabbitmq/ 目录下创建 rabbitmq.config 文件。注意,我们源服务器和目的地服务器都使用这个相同的配置文件。具体配置如下:

    三. 镜像模式(用得最多)

    经典mirror 模式,实现数据同步,一般2、3个节点,保证 100% 数据不丢失( 3 个节点)。

    KeepAlived 做 HA-Proxy 高可用,消息发主节点,主节点通过 mirror 队列同步数据到其他节点,实现高可靠。

    四、 多活模式(多)

        1、实现异地复制的主流,因为 shovel 配置复杂。要依赖 rabbitMQ 的 federation 插件,实现持续、可靠AMQP 数据通信

        2、除rabbitMQ 集群,各中心间要实现部分队列消息共享

        3、federation: 在 brokers 间传消息不需构建cluster高性能插件,连接双方可用不同 users 和 virtual hosts,不同版本rabbitMQ 和 erlang。

        4、federation用 AMQP 协议通信,可接受不连续传输。federation 建立在单个节点上(不是集群上),如图上黄色rabbit node 3 可与绿色node1、node2、node3 任意一个用 federation 同步数据

        5、如下图2,federation exchanges 可看成 downstreamupstream 主动拉取消息,并不拉所有消息,必须在 downstream 上已明确定义 Bingdings 关系 exchange,就是有实际的物理 queue 接收消息才拉

        ps:用 AMQP,downstream 将绑定关系组合一起,绑定/解绑命令发送到 upstream 交换机。因此,federation exchange 只接收具有订阅的消息。

    https://www.jianshu.com/p/b7cc32b94d2a

    镜像搭建:https://www.yisu.com/zixun/115327.html

    高可用:https://blog.csdn.net/woogeyu/article/details/51119101

    相关文章

      网友评论

          本文标题:(4)RabbitMQ 4种集群架构(3)

          本文链接:https://www.haomeiwen.com/subject/akutiktx.html