Consul代理和目录的区别

can*_*cat 6 consul

我不明白 consulxe2x80x99s agentapi 和consulxe2x80x99s api 之间的区别catalogapi

\n

虽然consul文档一直强调agent和catalog不要混淆\xef\xbc\x8c,但是确实有很多看起来类似的方法,比如:

\n\n

我什么时候应该使用catalogagent\xef\xbc\x88 就像上面的 http url\xef\xbc\x89 一样?

\n

哪一种适合高频次通话?

\n

小智 7

Consul 设计用于针对 Consul 客户端代理注册服务,该代理在部署服务的同一主机上运行。端点/v1/agent/service/为您提供了一种与在您正在通信的特定 Consul 代理中注册的服务进行交互的方法,并针对该代理注册新服务。

数据中心的每个Consul代理将其注册的服务信息提交给Consul服务器。服务器聚合这些信息以形成服务目录(https://www.consul.io/docs/architecture/anti-entropy#catalog)。端点/v1/catalog/返回聚合信息。

我想引用反熵文档中的这句话。

Consul将代理的状态视为权威;如果代理视图和目录视图之间存在任何差异,则将始终使用代理本地视图。

目录 API用于在目录中注册或删除服务/节点,但通常这些操作应针对客户端代理(使用 API /v1/agent/)执行,因为它们对 Consul 中的数据具有权威性。

API/v1/agent/应该用于高频调用,并且应该针对与应用程序在同一节点上运行的本地 Consul 客户端代理发出,而不是直接与服务器通信。