乐趣区

关于rocketmq:rocketmq如何解决高可用问题

架构

官网架构图

复制数据

主从复制,其实就是把主节点数据复制到从节点。

主动切换

如果主节点挂了,从节点会主动降职为主节点。

版本区别

高版本

4.5 和以上,反对主动切换。

低版本

4.5 以下,不反对主动切换。

主动切换 - 实现原理

1. 主节点挂了

2. 抉择一个从节点

1)一个从节点

如果只有一个从节点,就抉择这个从节点降职为主节点。

2)多个从节点

如果有多个从节点,就选举,过半以上节点抉择了某个从节点,该节点才会降职为主节点。

小结

高可用的外围

1. 有一个备胎节点

2. 实现主动切换性能

读写数据

主节点

写和读。

从节点

最佳实际是不写也不读,只备胎。

从节点默认是不读,然而也能够设置为可读——然而最好不要这么做,因为徒增复杂度,容易引起故障。

生产数据

如果主节点挂了,

1. 高版本

从节点会主动降职为主节点,而后就可写可读。

2. 低版本

从节点不会降职为主节点。那主节点的没有来得及生产的数据怎么办?消费者会从备胎节点读数据,这正是从节点的作用。

然而,此时,从节点是不能写数据的。所以,相当于主节点集群数量少了一个节点,就像 dubbo 集群服务一样,少了一个节点,是没有影响的。然而,如果剩下的主节点比拟少,比方总共只有 2 个,而后还挂了一个,这个时候就会存在单点故障。

退出移动版