【问题标题】:Using Consul for tracking down all the REST endpoints使用 Consul 跟踪所有 REST 端点
【发布时间】:2015-05-21 19:30:10
【问题描述】:

要求:5 个不同的内部应用程序公开 REST 端点。更多应用程序即将出现,这将暴露更多新端点。在部署这些应用程序时需要能够自动注册新的端点......以及某种可以列出集群中所有端点的 Web ui。

我们正在评估 consul.io,我不确定这是否符合要求。

我浏览了 consul 教程,我对服务注册的概念感到困惑。

当应用服务器启动时,如何注册一个 RESTful 端点? 另外,如果 app1 想知道 app2 暴露的确切端点地址,app1 是否能够查询 consul 呢?

还有其他 git repo 要结帐吗?

PS。应用程序是基于 play 框架构建的。

【问题讨论】:

    标签: web-services service-discovery consul


    【解决方案1】:

    让您的应用在上线时向领事代理注册。为此,您可以使用this consul api 调用。

    app2注册后,app1可以查询consul dns服务或者consul api获取app2的endpoint地址。

    请注意,在使用 DNS 功能时,app2 只有在应用被标记为健康时才会显示(该主机和服务的所有注册检查都标记为通过)。

    如果您想使用 api 调用,您有更多选择。

    • This 调用将获取具有指定名称的所有服务,而不考虑服务的健康检查。 (但如果主机离线,服务将不会列出)
    • This 调用将获取具有指定名称的所有服务以及它们的健康检查状态。如果您在 url 中添加“?passing”,则只会显示健康的服务(如使用 dns 选项)。

    【讨论】:

    • 非常感谢,您的想法与我昨天从文档中得到的信息一致。我正在开发 POC,如果解决方案可行,我会继续发布帖子。
    【解决方案2】:

    Jeff 的文章Automatic Docker Service Announcement with Registrator 很好地解释了这个问题(和解决方案)。总之,如果你的服务是 Docker 化的,你会使用gliderlabs/registrator 来自动注册/注销服务,然后在 Consul 中查找它们。这是a complete tutorial,了解如何做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      相关资源
      最近更新 更多