软件 | 选举 |
Raft (Tidb) | 以不同的超时时间错开选举时间,分别向其它节点发送选自己的请求。直到被半数节点承认为止 https://my.oschina.net/laigous/blog/3075705 |
Kafka | 主要原理是通过zookeeper事务单线程原子性来选主,通过代理控制管理类(controller)读取原主节点在zk上的状态,然后选择一个follower做为leader https://www.jianshu.com/p/c987b5e055b0 |
Zookeeper | 1.独立线程向所有节点发起选举请求,获取其它节点事务id,收到其它节点回复后,得出最大事务id的节点(如果事务id相同,再比对节点id),然后以这个节点再发起选举请求.直到得到半数以上节点承认为止 2.向其它节点发起选自己为主的请求,其它节点收到请求后比对事务id和节点id。如果比自己大就同意,直到得到半数以上节点承认为止 https://blog.csdn.net/lzhcoder/article/details/88675292 |
RocketMq | 没有选举机制,通过多个master节点来保证可用性 |