专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 RabbitMQ集群模式

RabbitMQ集群模式

更新时间:2022-12-28 11:58:34 来源:赢咖4 浏览523次

Rabbitmq集群分为二种方式:

普通模式:创建好RabbitMQ集群之后的默认模式。

镜像模式:把需要的队列做成镜像队列

RabbitMQ集群模式

普通集群模式:queue创建之后,如果没有其它policy,消息实体只存在于其中 一个节点,A、B两个Rabbitmq节点仅有相同的元数据,即队列结构,但K列的 数据仅保存有一份,即创建该队列的rabbitmq节点(A节点),当消息进入A节 点的Queue中后,consumer从B节点拉取时,RabbitMQ会临时在A、B间进行 消息传输,把A中的消息实体取出并经过B发送给consumer,所以consumer可 以连接每一个节点,从中取消息,该模式存在一个问题就是当A节点故障后,B 节点无法取到A节点中还未消费的消息实体。

镜像集群模式: 把需要的队列做成镜像队列,存在于多个节点,属于RabbitMQ的HA方案(镜 像模式是在普通模式的基础上,增加一些镜像策略)该模式解决了普通模式中的数据丢失问题,其实质和普通模式不同之处在于,消息实体会主动在镜像节点间同步,而不是在consumer取数据时临时拉取,该模 式带来的副作用也很明显,除了降低系统性能外,如果镜像队列数量过多,加之大量的消息进入,集群内部的网络带宽将会被这种同步通讯大大消耗掉,所以在 对可靠性要求较高的场合中适用,一个队列想做成镜像队列,需要先设置policy。

客户端创建队列的时候,rabbitmq集群根据“队列名称”自动设置是普通集群模式或镜像队列的集群中有两种节点类型:

内存节点:只将数据保存到内存

磁盘节点:保存数据到内存和磁盘。

内存节点虽然不写入磁盘,但是它执行比磁盘节点要好,集群中,只需要一个磁盘节点来保存数据就足够了如果集群中只有内存节点,那么不能全部停止它们,否则所有数据消息在服务器全部停机之后都会丢失。

在一个rabbitmq集群里,有3台或以上机器,其中1台使用磁盘模式,其它节点使用内存模式,内存节点无访问速度更快,由于磁盘IO相对较慢,因此可作为数据备份使用。

以上就是关于“RabbitMQ集群模式”的介绍,大家如果想了解更多相关知识,不妨来关注一下本站的RabbitMQ教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>