【问题标题】:Can i have more than one Spring Cloud Config Server?我可以拥有多个 Spring Cloud Config Server 吗?
【发布时间】:2015-06-18 16:40:39
【问题描述】:
我知道我可以使用超过 1 个存储库将我的配置分布到多个存储库(可能针对每个应用程序)但是,我可以为这些存储库运行超过 1 个配置服务器,以便我们可以避免“配置服务器”出现单点故障。
如果我们可以运行多个配置服务器,我如何抽象出我的客户端访问任何一个特定的配置服务器?
更新(进一步阅读后):
而不是在 URI 中使用 IP,如果我使用负载平衡多个 IP 的 URL,它会解决我在 Config Server 上的单点故障问题吗?
spring.cloud.config.uri:http://myconfigserver.com
【问题讨论】:
标签:
spring
spring-boot
config
spring-cloud
spring-cloud-config
【解决方案2】:
我刚刚在 Cloud Foundry 中使用 Spring Cloud Bus 测试了 Spring Cloud Config Server。当扩展到多个实例时,服务器的/monitor 端点的触发器也会导致所有其他实例被更新。此外,当关闭一些实例时,客户端仍然能够从其他实例获取信息。长话短说,它按预期工作。
要回答您的其他问题:是的,您需要某种方式来解决“众多”服务器的问题。这可以使用 DNS 来完成,但您可能还想为此使用 Eureka 或其他一些服务发现机制。在 Cloud Foundry 中,您可以获得一个开箱即用的简单解决方案,即在使用时自动连接到正在运行的实例的 DNS 条目。
【解决方案3】:
我有一个类似的场景,我有几个 Spring Config 服务器实例。
这些实例通过 VIP 在 Eureka 服务器实例上注册。
我在 Eureka 服务器实例上也注册了几个网关服务器 (Zuul) 实例。
但是,我没有使用总线来通知网关服务器实例配置更改,而是在 RefreshRemoteApplicationEvent 事件上添加了一个自定义侦听器,以通知从 eureka 获取的网关服务器实例。
但是我的 Spring Config Server 实例之间看不到同步。
我很想知道代码中的哪个侦听器响应/monitor 端点调用以通知其他 Spring Config 服务器实例。
在/monitor 端点后面,有 org.springframework.cloud.config.monitor.PropertyPathEndpoint 类,但是我没有看到哪个监听器在做 Spring Config 服务器实例同步。
最好的问候。