我一直在玩Spring Cloud Configuration。我喜欢解决方案的简单性以及它使用git作为其默认配置存储的事实。
在推动集中配置管理解决方案之前,我需要弄清楚两个方面。 方面是:
高可用性
如何逐步推出配置更改(以支持金丝雀版本)
如果您已经在数据中心实施了此功能,或者只是玩这个,请分享您的想法! 另外,我想听听创作者,他们如何看待单/跨数据中心环境中的推荐部署。
答案 0 :(得分:5)
Config Server本身是无状态的,因此您可以根据需要调整这些数量,并通过eureka找到它们。在服务器本身下面,您指向的git实现也需要高度可用。所以,如果你指向github(私有或公共),那么git就像github一样可用。如果配置服务器无法访问git,它将继续提供已检出的内容,即使它已过时。
就逐步配置更改而言,您可以使用不同的分支并配置金丝雀通过spring.cloud.config.label
使用该分支,然后合并分支。您还可以使用配置文件(例如application-<profilename>.properties
)并配置金丝雀以使用指定的配置文件。
我认为分支更有意义,因为您不必每次都重新配置非金丝雀节点以使用新的配置文件,只需配置金丝雀来使用分支。
无论哪种方式,应用程序看到配置chages(使用spring cloud配置客户端时)的唯一时间是在启动时或在每个节点上POST
到/refresh
时。如果您使用Spring Cloud Bus一次刷新服务的所有实例,您还可以POST
到/bus/refresh?destination=<servicename>
。