“spring.cloud.consul.host”配置值可以有多个领事代理吗?

Posted

技术标签:

【中文标题】“spring.cloud.consul.host”配置值可以有多个领事代理吗?【英文标题】:Can "spring.cloud.consul.host" config value have multiple Consul agents? 【发布时间】:2017-06-15 06:53:57 【问题描述】:

我对这个配置有点困惑。我的带有@EnableDiscoveryClient 的Spring Boot 应用程序将spring.cloud.consul.host 设置为localhost。我正在运行我的 Boot 应用程序的主机上运行 Consul Agent,但我有几个问题(似乎无法在文档中找到我的答案)。

这个配置可以接受多个值吗?

如果是这样,我更愿意将值设置为 Consul 服务器地址列表(但是,运行 Consul 代理的意义何在,所以这似乎不切实际,这意味着我不明白这里有东西) 如果不是,我们是否应该在每个节点上运行一个 Consul 代理,一个带有 @EnableDiscoveryClient 的 Boot 应用程序正在运行? (这也感觉不对;一方面,这似乎是一个单点故障,即使一个代理应该能够了解有关集群的所有信息;如果我无法联系到这个代理怎么办?) 此配置的最佳做法是什么?

【问题讨论】:

【参考方案1】:

其实这是 Consul 自己来解决你的问题。每个服务器上都运行一个代理来为您处理集群、故障、共享数据、自动发现等,这样您就不需要知道 Spring Boot 配置中的其他主机。 Spring Boot 应用始终连接到在同一台机器上运行的代理。

见https://www.consul.io/docs/agent/basics.html

【讨论】:

没错,spring.cloud.consul.host 只能有一个值。 代理宕机了怎么办?假设我们有 3 个代理,我们如何切换到其他代理?

以上是关于“spring.cloud.consul.host”配置值可以有多个领事代理吗?的主要内容,如果未能解决你的问题,请参考以下文章