我最近开始学习有关服务注册表及其在分布式体系结构中的用法的更多信息。
我发现的所有提供服务注册表的应用程序(etcd,Consul或Zookeeper)都基于相同的模型:具有领导者选举的主服务器/集群。 / p>
如果我错了,请纠正我,但是...这是否会使体系结构的可靠性降低?从某种意义上说,主集群带来了一个故障点。为了避免这种情况,我们总是可以制作一个更大的集群,但是它的成本更高和/或性能更低。
我的问题是:
答案 0 :(得分:1)
所有这些服务都基于一份白皮书-Google Chubby(https://ai.google/research/pubs/pub27897)。这个想法是为分布式系统提供快速一致的配置存储。要到达那里,您需要消除单点故障。你该怎么做?您引入了存储相同数据的多台计算机,并且还复制了数据。但是在那种情况下,考虑到这些机器之间的网络不可靠,您如何确保节点之间的数据一致?您从群集中选择一个节点作为领导者(使用分布式领导者选举算法),如果节点之间的值不一致,则选择“正确”的节点是领导者的工作。看来我们已经回到了“单点失败”的境地,但实际上,如果领导者失败,集群的其余成员只会投票并提升新的领导者。因此,在这些系统中的领导者角色不是单一事实,而是决策制定的单一点