rabbitmq 镜像队列集群配置

原文:https://www.jksxit.com/essay/41

前言

在rabbitmq中,有两种集群模式:分别是普通集群模式和镜像队列集群模式,在《rabbitmq 集群搭建》这篇博文中已经介绍了普通集群模式的搭建方式,而镜像队列集群模式的搭建步骤和普通集群模式是基本相同的,唯一不同的是,镜像队列集群模式,多了一步配置policy 的步骤,本篇将介绍这两种集群模式的区别,以及镜像队列集群模式的配置方式。

普通集群模式

普通模式:默认的集群模式。

特点:在rabbitmq集群各节点中,tag,vhost,exchange,bind,queue等信息是完全一致的;但是queue中的消息数据,不会在多节点中同步,只存在于其中一个节点。例如现有A、B两个节点,当消息进入A节点的queue中后,consumer从B节点拉取消息时,RabbitMQ会临时在A、B两个节点间进行消息传输,把A中的消息取出并经过B发送给consumer。所以在普通集群模式下,consumer应尽量连接每一个节点,防止单节点性能瓶颈。

优点:在普通集群中,通过增加节点能线性的增加性能(CPU、内存)和容量(内存、磁盘),因为机器能够容纳的消息数量是和节点数成正相关的 ——具有水平伸缩性。

缺点:当A节点故障后,B节点无法取到A节点中还未消费的消息实体。如果做了消息持久化,那么只有等A节点恢复后,才可以继续被消费;如果没有持久化的话,消息就会丢失 ——没法保证高可用HA。

镜像队列集群模式

镜像模式:把需要的队列做成镜像队列,消息存在于多个节点,属于RabbitMQ的HA方案。

特点:镜像队列集群与普通集群不同之处在于,queue中的消息数据会在镜像节点中同步,消息写入队列,都交由master节点进行写入,然后同步至各slave节点。当master节点宕机后,内部会从slave节点中重新选举出一个新的master节点,从而达到去中心化的目的。

优点:由于镜像队列之间消息自动同步,且内部有选举master机制,即使master节点宕机也不会影响整个集群的使用,达到去中心化的目的,从而有效的防止消息丢失及服务不可用等问题 ——保证高可用HA。

缺点:正所谓凡是有利亦有弊,正式因为涉及到主从节点之间消息的同步,当内部需要同步的镜像队列较多,数据量很大的时候,磁盘IO,网络带宽等都会成为当前master节点的瓶颈,进而影响到整个集群的性能。并且,由于各节点之间消息的同步(即各节点镜像队列数据完全一致),也丧失了通过新增节点线性增加性能(CPU、内存)和容量(内存、磁盘)的能力 ——不具备水平伸缩性。

ps:rabbitmq镜像队列集群,可以参考fastdfs分布式文件系统的分组设计方式,具备水平伸缩性。

镜像队列policy配置

普通集群和镜像队列集群搭建步骤完全一样,唯一不同的是镜像队列集群多了一步Add policy。

管理界面操作截图:

在这里插入图片描述

ha-sync-mode:指定镜像队列中消息的同步方式,有效值为automatic(自动同步),manually(手动同步);默认是manually,请注意一定要记得设置为automatic(自动同步),否则消息在镜像队列中是不会自动同步的(即普通集群模式),只能通过命令手动去同步。

ha-mode:指定镜像队列的模式,有效值为all/exactly/nodes。其中all表示在集群中所有的节点上进行镜像;exactly表示在指定个数的节点上进行镜像,节点的个数由ha-params指定;nodes表示在指定的节点上进行镜像,节点名称通过ha-params指定。

ha-params: 用于指定ha-mode模式中需要用到的参数。

使用策略后的queue特性:

在这里插入图片描述

policy相关知识

Name: policy策略的唯一名称;

Pattern: 用于匹配exchange和queue等名称的正则表达式;

Apply to:指定将此policy应用到哪些项上(例如:exchange,queue等);

Priority: 可选参数,policy的优先级,exchange和queue名称可以匹配到多个policy,优先级则定义了policy被执行的顺序;

Definition:参数定义;

转载自:http://www.pandan.xyz/2017/02/28/rabbitmq 镜像队列集群配置/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值