解决spring-cloud-config 多服务共享公共配置的问题

 更新时间:2020年11月14日 14:06:27   作者:Java技术干货  
这篇文章主要介绍了解决spring-cloud-config 多服务共享公共配置的问题,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

问题描述

我们公司的项目是基于SpringCloud开发的微服务,用到了Spring-Cloud-Config作为微服务统一的配置中心,可以将散落在各个服务的配置进行统一配置管理。

虽然配置中心将各个应用的配置文件进行了统一管理, 但是涉及到的一些公共配置,比如数据库连接,redis连接,ftp连接等,依然还散落在各个应用的配置文件中,并没有抽取,我们需要根据环境的不同,而动态修改它们,非常难以维护。导致每次涉及修改这些公共配置,就非常老火。

所以想到了利用公共文件方法,现在在这里简单阐述一下如何配置。(下面例子Spring-Cloud-Config-Server都是使用本地配置方式)。

经过网上查阅资料,大部分都是采用方法一进行配置的,那么我提供了一个方式二配置,也许会让你眼前一亮,然后留下你的想法,如果是你去选择,会选择哪个方法呢?

方法一:

首先在配置中心的 config/ 目录下创建一个公共配置文件common.yml, 然后在各个应用下的 bootstrap.yml 文件中 spring.cloud.config.name 这里去配置多个配置文件名。

例如:

service-a 客户端的 bootstap.yml:

spring:
 cloud:
 config:
  name: service-a, common

service-b 客户端的 bootstap.yml:

spring:
 cloud:
 config:
  name: service-b, common

方法二:(比较推荐)

我们还记得springboot单体应用的时候, 是如何抽离公共配置呢?答案是用spring.profiles.include 进行引用其他公共配置文件。而且它的文件命名有个特点,就是必须是application-开头的配置文件。
我们也会去想,像spring-cloud-config这样的配置集中化,这样的配置会生效吗?

例如:

首先,我们在 config/ 目录下创建 application-common-dev.yml 配置文件

然后分别修改 service-aservice-bconfig/ 目录下的配置文件,配置如下:

service-a 客户端的 service-a-dev.yml

spring:
 application:
 name: service-a
 #公共配置文件
 profiles:
 include: common-dev

service-b 客户端的 service-b-dev.yml

spring:
 application:
 name: service-b
 #公共配置文件
 profiles:
 include: common-dev

分别启动各自的服务,就可以看到服务启动成功。

那么,这两种方式那种更好一些呢。
方法一:
缺点:如果有新加的公共配置文件,需要去每个服务的bootstrap.yml都去修改一下。并且需要重新发布jar包。

方法二:
优点:配置可以外部化,而且修改配置文件,不需要单独发布jar包。

到此这篇关于解决spring-cloud-config 多服务共享公共配置的问题的文章就介绍到这了,更多相关spring-cloud-config 公共配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mybatis-Plus同时使用逻辑删除和唯一索引的问题及解决办法(报数据重复Duplicate entry的问题)

    Mybatis-Plus同时使用逻辑删除和唯一索引的问题及解决办法(报数据重复Duplicate entry的

    在开发中,我们经常会有逻辑删除和唯一索引同时使用的情况,但当使用mybatis plus时,如果同时使用逻辑删除和唯一索引,会报数据重复Duplicate entry的问题,如何解决这个问题呢,小编给大家分享Mybatis-Plus同时使用逻辑删除和唯一索引的问题及解决办法,一起看看吧
    2023-11-11
  • 如何在Java SpringBoot项目中配置动态数据源你知道吗

    如何在Java SpringBoot项目中配置动态数据源你知道吗

    这篇文章主要介绍了SpringBoot如何在运行时动态添加数据源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • Java中Arrays.sort()方法的比较器详解

    Java中Arrays.sort()方法的比较器详解

    这篇文章主要介绍了Java中Arrays.sort()方法的比较器详解,Arrays.sort(Object[] a)此方法看似没有要求我们实现比较器,对于基本数据类型,String类型确实如此,因为这些类型中已经自带了compareTo()方法,需要的朋友可以参考下
    2023-12-12
  • swagger文档增强工具knife4j使用图文详解

    swagger文档增强工具knife4j使用图文详解

    这篇文章主要介绍了swagger文档增强工具knife4j使用详解,想要使用knife4j非常简单,只要在Springboot项目中引入knife4j的依赖即可,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 编码实现从无序链表中移除重复项(C和JAVA实例)

    编码实现从无序链表中移除重复项(C和JAVA实例)

    如果不能使用临时缓存,你怎么实现无序链表中移除重复项(?C和JAVA实例无序链表中移除重复项。
    2013-10-10
  • java项目中读取jdbc.properties文件操作

    java项目中读取jdbc.properties文件操作

    这篇文章主要介绍了java项目中读取jdbc.properties文件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Mybatis返回Map数据方式示例

    Mybatis返回Map数据方式示例

    这篇文章主要为大家介绍了Mybatis返回Map数据方式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Spring Boot系列教程之7步集成RabbitMQ的方法

    Spring Boot系列教程之7步集成RabbitMQ的方法

    RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。下面这篇文章主要给大家介绍了关于Spring Boot之7步集成RabbitMQ的相关资料,需要的朋友可以参考下
    2018-11-11
  • SpringBoot+Thymeleaf实现生成PDF文档

    SpringBoot+Thymeleaf实现生成PDF文档

    Thymeleaf是一个现代的服务器端 Java 模板引擎,适用于 Web 和独立环境。Thymeleaf 的主要目标是为您的开发工作流程带来优雅的自然模板,本文就来用它实现生成PDF,感兴趣的可以了解一下
    2022-09-09
  • java网上图书商城(6)订单模块1

    java网上图书商城(6)订单模块1

    这篇文章主要为大家详细介绍了java网上图书商城,订单模块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论