返回顶部
首页 > 资讯 > 后端开发 > Python >SpringCloud 如何提取公共配置
  • 209
分享到

SpringCloud 如何提取公共配置

2024-04-02 19:04:59 209人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

SpringCloud 提取公共配置 在开发微服务项目时,通常会有很多服务,此时会用配置中心来管理这些服务的配置,但有些服务可能会有相同的配置,比如数据源配置,eureka serv

SpringCloud 提取公共配置

开发微服务项目时,通常会有很多服务,此时会用配置中心来管理这些服务的配置,但有些服务可能会有相同的配置,比如数据源配置,eureka server注册中心地址配置,actuator开放端口配置等,很多的服务都需要,如果每个服务都写一份这样相同的配置,服务一多,也挺麻烦的,并且如果要换一个数据库或注册中心,每个服务都得改,很麻烦,所以就需要将这些公共的配置提取出来,放到公共的配置文件中,而这些服务去引用这些配置即可。

原本服务的配置文件可能是这样的:


spring:
  application:
    name: eureka-client
  cloud:
    config:
      uri: Http://localhost:8888  #配置中心地址
      label: master
      profile: dev

此时服务默认会去config找名字为eureka-client-dev.yml的配置文件,这个配置文件里可能有eureka server地址,数据源配置,Redis配置等,而另一个服务的配置文件可能也有这些相同的配置,这时就可以将这些相同的配置提取出来,放到多个配置文件中,让服务去读取这些配置文件,比如可能有base-dev.yml来放各个服务公共的配置,datasource-dev.yml来存放数据源配置,而eureka-client-dev.yml是这个服务独有的配置,这些配置文件都在config server中,则服务的工程中的配置文件则可以改成这样:


spring:
  application:
    name: eureka-client
  cloud:
    config:
      uri: http://localhost:8888  #配置中心地址
      label: master
      profile: dev
      name: eureka-client,base,datasource

这样eureka-client服务就会去配置中心读取这3个配置文件,其他的服务如果需要,直接在自身的配置中在spring.cloud.config.name属性中添加文件名即可,而不用再写相同的配置了。

SprinGCloud 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-a 和 service-b 在 config/ 目录下的配置文件,配置如下:

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包。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: SpringCloud 如何提取公共配置

本文链接: https://www.lsjlt.com/news/130631.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringCloud 如何提取公共配置
    SpringCloud 提取公共配置 在开发微服务项目时,通常会有很多服务,此时会用配置中心来管理这些服务的配置,但有些服务可能会有相同的配置,比如数据源配置,eureka serv...
    99+
    2024-04-02
  • vue如何实现自定义公共组件及提取公共方法
    这篇“vue如何实现自定义公共组件及提取公共方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue如何实现自定义公共组件及...
    99+
    2023-06-30
  • HTML5中公共页面如何提取作为公用代码
    这篇文章主要介绍HTML5中公共页面如何提取作为公用代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在网站制作中有很多部分的代码是相同的,如footer部分,可以把这段代码提取出来,在别的页面调用。index.ht...
    99+
    2023-06-09
  • 如何使用webpack的CommonsChunkPlugin提取公共代码
    这篇文章主要为大家展示了“如何使用webpack的CommonsChunkPlugin提取公共代码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用webp...
    99+
    2024-04-02
  • 如何使用go-cloud s3blob设置公共读取?
    哈喽!大家好,很高兴又见面了,我是编程网的一名作者,今天由我给大家带来一篇《如何使用go-cloud s3blob设置公共读取?》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点...
    99+
    2024-04-05
  • vue实现自定义公共组件及提取公共的方法
    目录自定义公共组件及提取公共的方法vue自定义公共组件vue 提取公共的方法vue定义公用方法自定义公共组件及提取公共的方法 vue自定义公共组件 我们在编写页面的时候,会存在公共的...
    99+
    2024-04-02
  • Webpack提取页面公共资源的实现
    目录1. 利用html-webpack-externals-plugin 分离基础库2. 利用SplitChunksPlugin 分离基础库3. 利用SplitC...
    99+
    2023-01-28
    Webpack提取公共资源 Webpack公共资源提取
  • SpringCloud 核心组件Nacos【配置热更新&配置共享】第5章
    目录 1:配置热更新 1.1:方式一 1.2:方式二 2.配置共享 1)添加一个环境共享配置 2)在configservice中读取共享配置 3)运行两个ConfigApplication,使用不同的profile 4)配置共享的优先级 测...
    99+
    2023-08-31
    java spring boot 开发语言
  • SpringCloud-Alibaba-Sentinel-如何配置持久化
    这篇文章主要介绍“SpringCloud-Alibaba-Sentinel-如何配置持久化”,在日常操作中,相信很多人在SpringCloud-Alibaba-Sentinel-如何配置持久化问题上存在疑惑,小编查阅了各式资料,整理出简单好...
    99+
    2023-06-08
  • vue如何在main.js中配置全局的通用公共组件
    目录在main.js中配置全局的通用公共组件vue.js全局组件的三种方式全局组件第一种方式,单引号(或双引号)第二种方式反引号第三种方式外部ID总结在main.js中配置全局的通用...
    99+
    2023-01-13
    vue main.js main.js配置公共组件 全局通用公共组件
  • Exchange Server 2010 公共文件夹创建配置
    公用文件夹专为共享访问设计,为收集、组织信息及与您的工作组或组织中的其他人共享信息提供了一种轻松、有效的方式。公用文件夹是分层组织的,存储在专用数据库中,并且可以在 Exchange 服务器之间进行复制。创...
    99+
    2024-04-02
  • SpringCloud 核心组件Nacos【配置管理&配置拉取】第4章
    目录 1,Nacos配置管理 1.1:统一配置管理 1.1.1:为什么需要nacos配置中心  1.1.2:实现nacos配置中的概念 1.1.3:在nacos中添加配置文件 1.1.4.从微服务拉取配置 1.4.5 nacos 配置文件加...
    99+
    2023-09-06
    java 运维 开发语言 nacos
  • win10公共盘如何打开
    要打开Win10的公共盘,可以按照以下步骤操作:1. 打开"资源管理器":可以通过点击任务栏下方的文件夹图标或者按下"Win + E...
    99+
    2023-10-18
    win10
  • Linux如何配置nfs共享目录
    要在Linux上配置NFS共享目录,需要按照以下步骤进行操作:1. 确保NFS服务器已经安装:使用以下命令安装NFS服务器软件包:`...
    99+
    2023-09-27
    linux
  • SpringCloud读取Nacos配置中心报错怎么解决
    这篇文章主要介绍“SpringCloud读取Nacos配置中心报错怎么解决”,在日常操作中,相信很多人在SpringCloud读取Nacos配置中心报错怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S...
    99+
    2023-07-05
  • vue如何引入公共样式
    在vue中引入公共样式的方法有:1.使用import方法引入;2.使用link标签引入;3.在style标签中引入;在vue中引入公共样式的方法有以下几种使用import方法引入公共样式import '../static/css/g...
    99+
    2024-04-02
  • redhat7如何配置文件共享服务
    这篇文章主要为大家展示了“redhat7如何配置文件共享服务”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“redhat7如何配置文件共享服务”这篇文章吧。在linux主机之间可以用NFS服务实现...
    99+
    2023-06-27
  • Linux如何配置nfs共享存储服务
    这篇“Linux如何配置nfs共享存储服务”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux如何配置nfs共享存储服务...
    99+
    2023-06-28
  • Laravel如何向公共模板赋值
    本文小编为大家详细介绍“Laravel如何向公共模板赋值”,内容详细,步骤清晰,细节处理妥当,希望这篇“Laravel如何向公共模板赋值”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Laravel 中解决办法如下...
    99+
    2023-07-04
  • 如何配置命令提示符
    这篇文章主要介绍了如何配置命令提示符,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。配置命令提示符打开 命令提示符。  单击命令提示符窗口的左上角,然后单击...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作