一、RabbitMQ集群架构和原理解析
1.RabbitMQ的四种集群架构模式
(1)主从模式
(2)远程模式
(3)镜像模式
(4)多活模式
2.主从模式
(1)简介
warren,主备方案,主节点挂了,从节点继续提供服务
(2)配置
a.Haproxy配置
listen rabbitmq_clusterbind 0.0.0.0:5670mode tcpoption tcplogmaxconn 10000balance roundrobinserver mq03 192.168.1.9:5672 check inter 1000 rise 2 fall 2 backupserver mq02 192.168.1.7:5672 check inter 1000 rise 2 fall 2 backupserver mq01 192.168.1.6:5672 check inter 1000 rise 2 fall 2
注意option要配置成tcp-check,server中带backup的从
3.远程模式
(1)简介
远程通信和复制,实现双活的一种方式,简称Shovel模式
(2)优劣势
配置麻烦,可靠性有待提升
(3)原理
所谓Shovel,就是把消息进行不同数据中心的复制工作,可以跨地域的让两个MQ集群互联
(4)架构模型
(5)内部实现
4.镜像模式
(1)简介
RabbitMQ集群最经典的就是Mirror镜像模式,数据非常可靠,可保证100%不丢失
(2)应用场景
实际工作中应用最多,集群实现非常简单,许多互联网大厂都会使用这种镜像模式。
(3)优劣势
a.高可靠
b.数据同步性能优异
c.横向扩展性差
(4)集群架构图
5.多活模式
(1)简介
实现异地数据复制的主流模式,Shovel模式比较复杂,所以大多使用这种多活或双或模型类实现
(2)优劣势
a.需要依赖RabbitMQ的federation
b.可以实现持续的AMQP数据通信
c.实际配置与应用都比较简单
(3)架构图
(4)使用federation插件实现上下游互通
二、RabbitMQ集群架构
1.RabbitMQ整体架构
(1)AMQP协议
(2)RabbitMQ整体架构图
2.幂等性
借用数据库的乐观锁机制来理解,就是我们执行一条更新语句,无论执行多少次,结果都是一致的。