2
|
Manas Saxena · 技术社区 · 6 年前 |
1
2
根据您的需要,有许多选择是可能的,有些是琐碎的,有些是更复杂但更灵活的。 首先,您可以将配置保存在SpringBoot应用程序中,这当然不是理想的方法,但非常简单。 您可以将application-local.properties、application-production.properties等放在resources文件夹中,并使用所需环境的活动配置文件运行Spring引导应用程序。
另一个更高级的设置是使用配置文件,但将其保留在应用程序之外。
在这里,您将独立于应用程序部署这个配置文件,这里有许多可能的选项,包括共享文件系统、自动部署等。
您可以使用运行Spring引导应用程序
现在,如果您希望将配置保存在Git存储库或文件系统中,并且您的组织中有许多微服务,那么管理它们就变得一团糟。因此,在这种情况下,您可以检查配置服务器。SpringBoot与配置服务器集成,后者是SpringCloud项目的一部分。你可以找到 here 更多信息。 这是迄今为止最先进的设置——您甚至可以动态地更改配置,而不必重新启动SpringBoot微服务(Google用于SpringBoot配置中的可刷新bean)。此外,您可以将配置保存在Git存储库中,它将自动能够使用它。 还有其他的解决方案,可能与Spring引导应用程序的集成较少,但如果您已经在组织中使用它们,则可以考虑使用它们:etc.d、consul等等。 通常,人们在进入SpringBootWorld时,从第一个或第二个选项开始,然后采用其中一个选项的第三个选项。 |
2
1
我个人会尝试使用配置服务器: Centralized Configuration .基本上,您将配置文件保存在一个git repo中,在它上面有一个相对简单的Spring引导应用程序,您的其他Spring引导应用程序可以连接到它并请求配置。 此外,与执行器结合使用,它还使您能够在不重新启动应用程序的情况下即时更改配置。 |
3
0
这两种策略都是:
这取决于你想要实现什么。 在第一种情况下,我建议遵循每个服务模式下的单个主机,并将您的Spring引导应用程序作为Docker容器,然后将其部署到一个编排器上,如AWS ECS、Kubernetes、Swarm等等,甚至为每个服务提供一个虚拟机可能是一个解决方案,但我认为这可能需要花费E. 所听到的好处是,我们的应用程序可以在不进行其他开发工作的情况下使用,因为您的所有配置都接近您的代码,此模式中的任何配置更改都将是一个新的部署,它将在Docker注册表上创建一个新的Docker映像。通过这种方式,您可以防止配置漂移,所有和所有副本都将被更新并保持一致,您可能会使用金丝雀部署或蓝绿色部署模式。 第二个策略使您拥有类似于许多PaaS的配置模式,如CloudFoundry和Openshift。所有应用程序副本将共享一个配置入口点。 如果使用Spring Cloud进行Spring,您可以选择Spring Cloud配置服务器。在这种情况下,所有应用程序都会向服务器请求配置,可以通过尝试检索配置的嵌入式客户端或通过Netflix Eureka或Consul之类的发现服务系统来发现服务器。
这种情况下的好处是,您可以按常规扩展配置服务器的实例数量,发现系统将提供已注册的所有副本。在配置服务器的情况下,您可以受益于许多配置存储,如文件系统、SVN、Git或最近的JDBC。更重要的是,你可以从中受益
希望对你有用 |
Shubham P · Spring Security角色工作不正常 1 年前 |