问题描述
我在理论上得到了崩溃容错 (CTF) 的概念。 CTF 用于保证即使领导服务器崩溃,系统仍在运行。 我需要实现分布式系统(聊天应用程序),还需要实现崩溃容错。为此,我必须使用所谓的“心跳”来检查领导服务器是否仍然“活着”。
我的问题是,是否有人可以向我展示一个很好的代码示例来实现这种心跳?
解决方法
心跳机制的适用性取决于集群的大小或您手头的典型用例/部署场景。
许多基于共识的算法都依赖于心跳来决定领导者或领导者服务器的状态。
对于小集群,可以参考raft算法,从leader服务器向follower发送心跳,也可以使用leader选举机制,以防leader崩溃。
对于大型集群,心跳机制可能无法扩展,因此故障检测器以及基于八卦的传播协议是首选,可以参考。
很少参考: https://raft.github.io/,https://github.com/topics/gossip-protocol