我是靠谱客的博主 健壮柜子,最近开发中收集的这篇文章主要介绍rabbitmq的多种集群模式;镜像集群模式自定义queue同步策略,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

概述

平時为了保证mq的高可用,一般都会部署集群模式,不过对于rabbitmq有多种集群模式,没有弄对的话容易埋坑。

  • **单机模式:**风险大,生产一般没人使用。
  • **普通集群模式:**虽然是集群,但是没有高可用。
  • **镜像集群模式:**有高可用。

普通集群模式

mq实例部署在多台服务器上。
如果创建了一个queue,那么只会放在一台上面,其他的都是同步这个queue的元数据(即配置信息,可以路由到queue所在机器)。
在消费的时候连接到非queue所在服务器时,会根据保存的queue元数据从它所在的实例上拉数据过来。如果此时queue所在服务宕机了,那么就无法拉取消息,即使开启了消息持久化,也需要等其恢复后才能拉取数据。

这种模式虽然叫集群,让queue分散在不同实例上,能减轻一些压力,但是在高可用要求上还是有点不太行。

镜像集群模式

此种模式和上面普通集群的区别在于,创建的queue会同步到其他实例上,而且queue里的消息也会同步到其他实例中。
简而言之就是每个mq实例中都有queue的完整镜像。每次写一个消息都会同步到其他实例中去。

优点:实现了高可用,避免一个实例挂了,导致某个queue消费阻塞。
缺点:无法线性扩展,新增一台实例消息也全部会同步过去(即包含了queue的全部数据)。而且某些queue的数据量非常大,可能导致磁盘无法容纳。

rabbitmq自定义queue同步策略

控制台配置位置
在这里插入图片描述

参数

rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]

-p Vhost: 可选参数,针对指定vhost下的queue进行设置

Name: policy的名称

#镜像配置的pattern 采用的是正则表达式匹配,也就是说会匹配一组符合要求的队列
Pattern: queue的匹配模式(正则表达式)

Definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode

	ha-mode:指明镜像队列的模式,有效值为 all/exactly/nodes

		all:表示在集群中所有的节点上进行镜像
		
		exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
		
		nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定

	ha-params:ha-mode模式需要用到的参数

	ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manual

priority:可选参数,policy的优先级

配置demo1同步到所有队列中
_LOG结尾的队列全部同步到其他mq实例中。
ha-sync-mode配置为automatic在某个mq宕机重启后会自动拉取同步
在这里插入图片描述

配置demo2,同步到指定实例中
QUEUE_开头的队列同步到指定实例中
在这里插入图片描述

最后

以上就是健壮柜子为你收集整理的rabbitmq的多种集群模式;镜像集群模式自定义queue同步策略的全部内容,希望文章能够帮你解决rabbitmq的多种集群模式;镜像集群模式自定义queue同步策略所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部