首页 > 解决方案 > 分布式环境中的Spring Boot application.properties?

问题描述

我想在分布式环境中部署我的 Spring Boot。一般来说,遵循的最佳做法是什么?

1.分布式环境的每个节点都有自己的application.properties

2.分布式环境的所有节点共享一个应用程序.properties

这是我的第一个 Spring Boot 项目,请不要因为这个问题杀了我:P

标签: spring-bootapplication.properties

解决方案


根据您的需要,可以有许多选项,有些是微不足道的,有些更复杂但更灵活。

一开始,您可以将配置保留在 Spring Boot 应用程序中,这当然不是理想的方式,但它非常简单。您可以将 application-local.properties、application-production.properties 等放在资源文件夹中,并使用您需要的环境的活动配置文件运行 spring boot 应用程序。

另一种更高级的设置是使用配置文件,但将其保留在应用程序之外。在这里,您将与应用程序分开部署此配置文件,这里有许多可能的选项,包括共享文件系统、自动部署等。您可以运行 spring boot 应用程序--spring.config.location=<path to configuration file>

现在,如果您想将配置保存在 git 存储库或文件系统中,并且您的组织中有许多微服务,那么管理它们就会变得一团糟。因此,在这种情况下,您可以检查配置服务器。Spring Boot 与配置服务器集成在一起,这是 Spring Cloud 项目的一部分。你可以在这里找到更多信息。

这是迄今为止最先进的设置 - 您甚至可以动态更改配置而不重新启动 spring boot 微服务(google for Refreshable beans in spring boot configuration)。此外,您可以将配置保存在 git 存储库中,它将自动能够使用它。

还有其他解决方案,可能与 Spring Boot 应用程序集成较少,但如果您已经在组织中使用它们,可以考虑:etc.d、consul 等。

通常,人们在进入 Spring Boot 世界时会从第一个或第二个选项开始,然后采用其中一个选项中的第三个选项。


推荐阅读