当前位置:   article > 正文

RabbitMQ的高可用方案_rabbitmq高可用方案

rabbitmq高可用方案

集群方案

cluster

Cluster普通模式

在这里插入图片描述
如图所示,此时Rabbit集群同步的是元数据,而真实数据实际上并未同步到每个节点中,此时如果在Rabbit01节点找不到相应队列,此时通过元数据找到该队列存在于Rabbit02节点,则消息发到此节点上。

元数据包含以下内容
队列元数据:队列的名称及属性
交换器:交换器的名称及属性
绑定关系元数据:交换器与队列或者交换器与交换器
vhost元数据:为vhost内的队列、交换器和绑定提供命名空间及安全属性之间的绑定关系

  • 优点
    由于原数据的数据量不大,同步速度相比来说比较快。
  • 缺点
    但由于真实数据还是分布存储,因此当某个节点挂了,则会造成单点故障。

镜像

Cluster镜像模式

在这里插入图片描述
如图所示,此时不同节点拷贝了一份全数据镜像,这种方式解决了普通模式的单点故障的问题,但是由于是全数据拷贝,会导致内存压力过大的问题,并且相对来说会比较慢。

Federation插件

在这里插入图片描述
该方案的主要作用是将消息先发往本地,再通过Federation link将数据同步到联邦节点上。

Federation插件的设计目标是使RabbitMQ在不同的Broker节点之间进行消息传递而无需建立集群,该功能在以下场景下非常有用:

  • 各个节点运行在不同版本的Erlang和RabbitMQ上。
  • 网络环境不稳定,比如广域网当中。

Shovel插件

Shovel与Federation具备的数据转发功能类似,但Shovel能够可靠、持续地从Broker中的队列拉取数据并转发至另一个Broker中的交换器。与Federation相比,Shovel更可靠,但是相比而言效率更低。

部署方式

多机多节点

多机多节点是指在每台机器中部署一个RabbitMQ服务节点,进而由多台机器组成一个RabbitMQ集群

在这里插入图片描述

单机多节点

由于某些因素的限制,有时候不得不在单台物理机器上去创建一个多RabbitMQ服务节点的集群。或者只想要实验性地验证集群的某些特性,也不需要浪费过多的物理机器去实现。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/443085
推荐阅读
相关标签
  

闽ICP备14008679号