raft 协议解析
raft 协议解析
高可用的实现方案总结
在工程实践中,高可用的方案有很多,例举几个,大家一定知道大部分的名词:主备,双备,HAProxy, F5, VRRP,Sentinel, gossip, paxos等。
这一系列的技术方案,可以简化和归纳成两类:一类可以叫哨兵, 如图以haproxy为例:
图片来自 Using HAProxy with the Proxy Protocol to Better Secure Your Database
这一类方案,有个共同点,都有一个类似哨兵的角色,细化的讲,有的叫proxy,有的叫gateway,有的叫monitor,有的叫sentinel,有的叫router,他们的作用都是类似的,就是感知并屏蔽内部不健康的主机,并对外提供一个始终可用的服务。完成高可用的目的。
另一类技术方案,可以叫一致性协议,如图基于gossip的redis cluster为例:
图片来自 微服务
这一类方案,也有一个共同点,就是都实现了一种内部节点之间的通信协议,协议能够发现异常节点,并且在内部通过某种机制来容错,不需要依赖外部的角色。 一致性协议的实现高可用的机制,最重要的一点就是半数同意的机制,因此能容忍半数-1的节点宕机。