“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”配置值可以有多个领事代理吗?的主要内容,如果未能解决你的问题,请参考以下文章