3

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

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

我经历了领事教程,我对服务注册的概念感到困惑。

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

还有其他要结帐的 git repo 吗?

PS。应用程序建立在播放框架上。

4

2 回答 2

3

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

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

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

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

  • 调用将获取具有指定名称的所有服务,而不考虑服务的健康检查。(但如果主机离线,服务将不会列出)
  • 调用将获取具有指定名称的所有服务及其运行状况检查的状态。如果您在 url 中添加“?passing”,则只会显示健康的服务(如使用 dns 选项)。
于 2015-05-22T08:54:59.020 回答
0

Jeff的文章Automatic Docker Service Announcement with Registrator很好地解释了这个问题(和一个解决方案)。总之,如果你的服务是 Docker 化的,你会使用gliderlabs/registrator来自动注册/注销服务,然后在 Consul 中查找它们。这是有关如何完成此操作的完整教程。

于 2015-07-23T07:07:57.013 回答