有没有机会使Spring配置服务器仅克隆特定路径而不是整个git repo?当我在生产环境中运行它时,我可能不希望将我的整个代码库都克隆到某个位置,因为这总是有风险的。我已经完成了研究,无法找出仅克隆git repo特定路径的方法。
一种解决方案是将配置存放在单独的存储库中。但这会破坏12factor.net的许多部署的代码建议的目的。
另一种可能性是将属性复制到配置服务器的类路径,然后使用本机配置文件加载它们。但这会违背Spring ConfigServer的目的。
还请澄清在生产环境上运行spring config服务器的最佳方法是什么?
答案 0 :(得分:2)
您应该将代码库与配置设置分开。
回购1:您的应用代码
回购2:您的Spring Cloud Config服务器代码
回购3:您的配置设置
部署时,您正在部署代码。不是配置。配置更改不应要求新的部署。新部署可能需要更新配置,但是通常两者是分离的。
可以在代码运行时动态更新配置。这与更新代码和部署应用程序完全分开。这就是外部化配置的重点。
TL; DR:您正在错误地查看“一个代码,许多部署”。配置已外部化。
答案 1 :(得分:1)
我直接从12factor.net上获取了
应用有时会将config作为常量存储在代码中。这违反了十二个因素,这要求将配置与代码严格分开。各个部署之间的配置差异很大,而代码则没有。
即使您不再将它们存储为常量,但仍位于同一存储库中,也无法与代码分开。使用单独的存储库进行配置。