首页 文章

跨应用程序的Spring Cloud Config Server共享属性

提问于
浏览
7

我目前有许多可部署的应用程序,它们以分布式方式工作以解决业务问题 . 我们目前正在使用许多属性配置文件来根据系统环境变量提供每个环境的更改配置 . 所有这些可部署应用程序共享数据库和消息传递的通用配置目前,这是通过从类路径中获取属性文件并使两个已部署的应用程序共享包含属性文件的每个连接(db,jms)的公共jar来实现的 .

我希望尽可能开始使用Spring Config Server外部化此配置 . 我有一个关于如何共享此常见配置的问题 .

目前它看起来像这样: -

WEB1

  • 数据库
  • jms

Messaging1

  • 数据库
  • jms

在这种情况下,两个部署的应用程序共享相同的连接,并且这些连接会根据环境(lab,prf,prd等)进行更改 . 如何在Spring Configuration Server中为每个可部署应用程序配置应用程序配置?

Application.yml
Web1.yml
WEB1-dev.yml
Messaging1.yml
Messaging1-dev.yml

如果为环境更改了连接属性,我需要对每个可部署的应用程序配置进行更改,而不是只进行一次 .

目前有没有实现这一目标?我只是错过了一个简单的观点吗?

2 回答

  • 1

    终于找到了解决方案 . 它埋藏在github的问题中......

    https://github.com/spring-cloud/spring-cloud-config/issues/32

    它的工作很受欢迎 . 我只注意到,您需要将文件放在/ config文件夹中才能使其正常工作 . 如果您将它放在根目录中,则该文件将由configserver本身使用,并且不包含在配置请求中 .

  • 2

    我在这里找到了工作解决方案https://cloud.spring.io/spring-cloud-config/single/spring-cloud-config.html,第"2.1.5 Sharing Configuration With All Applications"段 . 它说:

    使用基于文件(即git,svn和native)的存储库,在application *中具有文件名的资源在所有客户端应用程序之间共享(因此application.properties,application.yml,application - * . properties等) . 您可以使用具有这些文件名的资源来配置全局默认值,并根据需要由特定于应用程序的文件覆盖它们 .

    您应该在配置存储库的顶级创建application.properties或application.yml(如果它是基于git或svn) . 别忘了 commit 的变化 .

相关问题