SWIM协议新节点如何获取集群中现有节点的地址

时间:2017-03-11 23:29:24

标签: microservices

背景:   我一直在研究微服务,更具体地说是服务发现, 我感兴趣的一件事是SWIM协议。但是当谈到加入网络的新节点时,我有点困惑。

加入群集的新节点如何获取现有群集的1个或多个节点的地址,而不是单个点?

如果您需要任何进一步的信息或有任何问题,请告诉我。

1 个答案:

答案 0 :(得分:1)

请查看基于游泳协议和八卦协议改进实现微服务的scalecube

https://github.com/scalecube/scalecube

你可以找到参考资料: https://github.com/scalecube/scalecube/wiki/Distributed-Computing-Research

通常,当新节点加入网络时,它加入已经运行的集群节点(种子或成员)之一以及关于新成员的群集闲话并创建一个"集群"八卦协议"感染"具有会员信息的群集。

通常有一组节点作为群集的入口点,称为种子,它们可以是众所周知的成员,也可以使用诸如dns名称之类的差异方法发现,因此当新成员加入群集时,它可以查找主持人"种子"并解决了当前或其中一个种子命令。

在微服务架构中,种子也可以是api-gateways或特定节点,它们通常最适合选择种子作为最不受更改和升级影响的成员。

我写了一篇讨论该主题的帖子 https://www.linkedin.com/pulse/swim-cluster-membership-protocol-ronen-nachmias/