首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >其他节点上的领事代理服务注册不能从Rest中获取,而是显示在UI上

其他节点上的领事代理服务注册不能从Rest中获取,而是显示在UI上
EN

Stack Overflow用户
提问于 2020-11-18 09:57:06
回答 2查看 925关注 0票数 1

我们有一个由3台服务器组成的领事集群,并通过Rest Api在其中任何一台服务器上注册代理服务。

在UI中,服务器注册在其他服务器上也是可见的。例如,服务器A上的注册在服务器B的UI上是可见的(可通过http://serverb:8500/访问)。

然而,当通过Rest访问服务器B时,它只显示自己的注册,而不显示服务器A注册。

服务器是以服务器的形式启动的领事-server -ui引导-expect=1 -node=ServerA -data-dir=D:\data -bind=11.223.15.78 -client=0.0.0.0 -retry-join=11.223.15.79 -retry--node=ServerA=11.223.15.80

服务器B

领事-server -ui引导-expect=1 -node=ServerB --node=ServerB-dir=D:\data -bind=11.223.15.79 -client=0.0.0.0 -retry--client=0.0.0.0=11.223.15.78-retry--node=ServerB=11.223.15.80

服务器C

领事-server -ui引导-expect=1 -node=ServerC --node=ServerC-dir=D:\data -bind=11.223.15.80 -client=0.0.0.0 -retry--client=0.0.0.0=11.223.15.78-retry--node=ServerC=11.223.15.79

这是个问题还是我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-18 17:36:35

服务的可见性将取决于所使用的API端点,以及在何处注册服务。领事打算向运行在与已部署服务相同的主机上的领事客户代理注册服务。向数据中心中的每个代理注册的服务被聚合成服务目录(https://www.consul.io/docs/architecture/anti-entropy#catalog)。

/catalog/services端点返回跨数据中心向每个代理注册的服务聚合列表。/agent/services端点只返回与您通信的特定本地代理注册的服务。

如果希望客户端能够跨任何服务器注册服务,则需要使用/catalog/register端点注册它们。您可以选择使用像领事对外服务监察这样的工具,独立于领事服务器为服务提供健康检查。有关详细信息,请参阅https://www.hashicorp.com/blog/consul-and-external-services

票数 1
EN

Stack Overflow用户

发布于 2021-05-29 09:51:06

如果服务仅在集群的一个领事节点上通过代理api注册,则仍然可以通过目录api从所有服务器节点查询服务的服务名称:

代码语言:javascript
复制
/v1/catalog/:servicename

请参阅https://www.consul.io/api-docs/catalog#list-nodes-for-service

请注意,首先您需要通过代理api取消对同一领事节点上的服务的注册,而首先您已经通过代理api注册了它。如果你把它从目录中注销,几分钟后它就会回来(至少这是我的经验)。

领事文档建议使用代理api进行注册。,所以我仍然坚持通过代理api注册,尽管这使得取消注册有点棘手。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64890740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档