【问题标题】:Consul: join without knowing IP of existing members领事:在不知道现有成员IP的情况下加入
【发布时间】:2016-02-13 22:00:49
【问题描述】:

要将新代理加入一组领事成员,需要知道至少一个现有成员的 IP。 我必须支持我不知道任何现有组成员的 IP 的情况。在这种情况下,人工干预是不可能的,因为服务发现必须完全自动运行。

我解决这个问题的想法:我可以通过广播或多播向网络中的其他计算机发送消息。每台计算机都托管我将实施的自定义服务。该服务使用 consul 正在侦听的 IP 地址回复此特殊广播/多播消息(例如:“寻找现有集群成员”)。然后,该服务将从网络获得一个或多个回复,并使用其中一个 IP 地址加入集群。

有没有人有更好的办法来解决这个问题?是否有任何现有的库可以解决这个问题?

【问题讨论】:

  • 建议:你已经链接consul作为你唯一的标签引用,它有31个关注者的意思,你很可能不会得到这个问题的答案。您可以通过编辑问题添加更多标签吗?
  • 感谢您的提示,添加了更多合适的标签
  • 不客气,你有没有考虑把这个问题放到服务器故障中? serverfault.com
  • 还没有,对我来说似乎更像是一个编程/软件架构问题。不过我会考虑的。

标签: service broadcast multicast service-discovery consul


【解决方案1】:

Hashicorp 作为 Atlas 的一部分提供免费服务来做到这一点:https://www.consul.io/docs/guides/atlas.html

在没有自定义服务的情况下,其他更简单的方法:

  • 在第三方 DNS 中公开 Consul 服务器,这些服务器在加入 Consul 集群之前可以访问。或者,有一个公开的 http 服务,它返回一个 IP 以加入并使用 curl 或其他东西来获取 IP。使用 Consul 更新 IP。
  • 如果您在 AWS 或提供机器元数据的类似服务中运行,请使用该服务标记您的 Consul 框,然后使用该服务的查询功能执行诸如“查找具有标签 Consul 并正在运行的服务器”之类的操作并将它们传递给 -join。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    相关资源
    最近更新 更多