赞
踩
Cluster普通模式
如图所示,此时Rabbit集群同步的是元数据,而真实数据实际上并未同步到每个节点中,此时如果在Rabbit01节点找不到相应队列,此时通过元数据找到该队列存在于Rabbit02节点,则消息发到此节点上。
元数据包含以下内容
队列元数据:队列的名称及属性
交换器:交换器的名称及属性
绑定关系元数据:交换器与队列或者交换器与交换器
vhost元数据:为vhost内的队列、交换器和绑定提供命名空间及安全属性之间的绑定关系
Cluster镜像模式
如图所示,此时不同节点拷贝了一份全数据镜像,这种方式解决了普通模式的单点故障的问题,但是由于是全数据拷贝,会导致内存压力过大的问题,并且相对来说会比较慢。
该方案的主要作用是将消息先发往本地,再通过Federation link将数据同步到联邦节点上。
Federation插件的设计目标是使RabbitMQ在不同的Broker节点之间进行消息传递而无需建立集群,该功能在以下场景下非常有用:
- 各个节点运行在不同版本的Erlang和RabbitMQ上。
- 网络环境不稳定,比如广域网当中。
Shovel与Federation具备的数据转发功能类似,但Shovel能够可靠、持续地从Broker中的队列拉取数据并转发至另一个Broker中的交换器。与Federation相比,Shovel更可靠,但是相比而言效率更低。
多机多节点是指在每台机器中部署一个RabbitMQ服务节点,进而由多台机器组成一个RabbitMQ集群。
由于某些因素的限制,有时候不得不在单台物理机器上去创建一个多RabbitMQ服务节点的集群。或者只想要实验性地验证集群的某些特性,也不需要浪费过多的物理机器去实现。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。