SWIM协议新节点如何获取集群中现有节点的地址
SWIM protocol how does a new node get an address of an existing node in a cluster
背景:
我一直在研究微服务,更具体地说是服务发现,
我感兴趣的一件事是 SWIM 协议。但是当涉及到新节点加入网络时,我有点困惑。
加入集群的新节点如何获取现有集群的1个或多个节点的地址,而不是单点故障?
如果您需要任何进一步的信息或有任何疑问,请告诉我。
请查看基于 swim 协议实现微服务并改进 gossip 协议的 scalecube
https://github.com/scalecube/scalecube
您可以找到参考资料:
https://github.com/scalecube/scalecube/wiki/Distributed-Computing-Research
一般来说,当新节点加入网络时,它会加入一个已经 运行 的集群节点(种子或成员)和集群关于新成员的八卦并创建一个 "cluster" 八卦协议 "infects" 具有成员信息的集群。
通常有一组节点作为集群的入口点,称为种子,它们可以是众所周知的成员,也可以使用不同的方法(例如 dns 名称)发现,因此当新成员加入集群时,它可以查看对于主机名 "seed" 并且解析为其当前或其中一个种子 ips。
在微服务架构中,种子也可以是api-网关或充当种子的特定节点,通常最好选择种子作为最不受更改和升级影响的成员。
我写了一篇 post 讨论这个话题
https://www.linkedin.com/pulse/swim-cluster-membership-protocol-ronen-nachmias/
背景: 我一直在研究微服务,更具体地说是服务发现, 我感兴趣的一件事是 SWIM 协议。但是当涉及到新节点加入网络时,我有点困惑。
加入集群的新节点如何获取现有集群的1个或多个节点的地址,而不是单点故障?
如果您需要任何进一步的信息或有任何疑问,请告诉我。
请查看基于 swim 协议实现微服务并改进 gossip 协议的 scalecube
https://github.com/scalecube/scalecube
您可以找到参考资料: https://github.com/scalecube/scalecube/wiki/Distributed-Computing-Research
一般来说,当新节点加入网络时,它会加入一个已经 运行 的集群节点(种子或成员)和集群关于新成员的八卦并创建一个 "cluster" 八卦协议 "infects" 具有成员信息的集群。
通常有一组节点作为集群的入口点,称为种子,它们可以是众所周知的成员,也可以使用不同的方法(例如 dns 名称)发现,因此当新成员加入集群时,它可以查看对于主机名 "seed" 并且解析为其当前或其中一个种子 ips。
在微服务架构中,种子也可以是api-网关或充当种子的特定节点,通常最好选择种子作为最不受更改和升级影响的成员。
我写了一篇 post 讨论这个话题 https://www.linkedin.com/pulse/swim-cluster-membership-protocol-ronen-nachmias/