我正在用 golang 构建一个我希望容错的应用程序。我查看了不同的算法,如 RAFT 和 Paxos 以及它们在 golang 中的实现(etcd 的 raft,hashicorp 的 raft),但我觉得它们对于我的特定用例来说可能是矫枉过正。
在我的应用程序中,节点只是在待机状态下等待,并在领导者失败时充当故障转移。我不需要在整个集群中复制任何状态。我只需要以下属性:
如果一个节点是领导者:
运行给定的代码
如果节点不是领导者:
等待领导者失败
一旦现有领导者失败,重新选举领导者
有什么建议么?
至尊宝的传说
陪伴而非守候
相关分类