在 Consul 中注册服务的最佳方式是什么

what is the best way to register service in Consul

例如,如果我有一台服务器机器是 运行ning 十个网络应用程序,我称之为 A,三台机器是 运行ning Consul 并且它们处于服务器角色,我应该在哪里注册这十个应用程序?在 A 中 运行 一个 Consul Client 并在其中注册这些应用程序是不是最好的方法?或进入那些服务器领事?

在所有带有应用程序的服务器上,您应该在客户端安装 consul 代理 mod。

所有应用程序都有不同的端口,对吗?因此,例如,您可以使用取决于端口的 ID 注册此应用程序,例如 "my_web_application_8080" 用于 8080 端口上的应用程序,"my_web_application_8081" 用于 8081 上的应用程序,等等。这是必要的,因为服务应该有 uniq id(但是可以有相同的名字)。

您应该在 localhost 将所有这些注册请求发送给本地代理。导致此代理连接到服务器,所有其他领事代理将收到有关新服务的通知。

我在 Docker 环境(非容器)的每个节点上 运行 一个 Registrator 实例。 Registrator 自动将 Docker 容器 与暴露的端口 注册到 Consul。

docker run -d \
--name=registrator \
--net=host \
--volume=/var/run/docker.sock:/tmp/docker.sock \
gliderlabs/registrator:latest \
  consul://localhost:8500