1

我有 2 个不同的 HashiCorp Consul 集群(我们称它们为集群 A 和集群 B)在不同的主机上运行。

我的 Python 应用程序运行在我已经安装在配置为集群 A 的 1 个客户端代理上的主机上,我希望我的应用程序也能够向集群 B 发送请求(以某种方式区分 2 个代理)

是否可以在同一主机上安装第二个客户端代理(配置为集群 B)?如果是这样,怎么做?我只需要更改到不同的端口吗?找不到该用例的文档。

任何可能的解决方案都会有所帮助,谢谢!

4

1 回答 1

1

Consul 允许您为代理配置端口,这样它们就不会在单个主机上发生冲突。我能够在一个名为:

consul.json

有内容:

{ 
  "ports": { 
    "dns": 9600,
    "http":9500,
    "serf_lan":9301,
    "serf_wan": 9401,
    "server":9300,
    "grpc":9502
  } 
}

然后我使用以下命令启动代理:

consul agent -dev -bind 127.0.0.1 --config-file consul.json

然后我通过命令行工具在同一台机器上看到了两个代理ps x(输出缩写):

7510 ... consul agent -dev -bind 127.0.0.1
7780 ... consul agent -dev -bind 127.0.0.1 --config-file consul.json

最后,我使用此处--http-addr=指定的选项与非默认端口代理对话,并将它们聚集在同一主机上,以查看是否有可能,当然是:

[vagrant@localhost ~]$ consul members
Node                       Address         Status  Type    Build   Protocol  DC   Segment
localhost.localdomain      127.0.0.1:8301  alive   server  1.10.2  2         dc1  <all>
localhost.localdomain.dc1  127.0.0.1:9401  alive   server  1.10.2  2         dc1  <all>

因此,我相当有信心您可以在同一主机上运行两个代理,并在每个代理的配置文件中使用适当的设置(或者在一个上使用默认值,在另一个上使用配置文件)。

于 2021-09-21T06:10:40.250 回答