1.说明

基于已经创建好的Spring Cloud配置中心,
在配置中心仅保存一套配置文件,
多个客户端可以通过配置中心读取到相同的配置,
而不需要在每个客户端重复配置一遍,
下面以一个Config Client为例,
抽取其中的公共配置到配置中心,
且公共配置进一步细分为多个文件,
从而实现多个客户端共享公共配置,
解决微服务集群下配置文件维护的难题。

2.Config Client的现有配置

本地的application.yml:

# 开发环境
server:
port: 8004 config:
info: config info dev spring:
profiles: dev
application:
name: config-client-dev
cloud:
config:
label: master
name: gateway-server,eureka-client
profile: dev
uri: http://config:config123456@localhost:9009 eureka:
instance:
hostname: localhost
prefer-ip-address: true
client:
service-url:
register-with-eureka: true
fetch-registry: true
defaultZone: http://eureka:eureka123456@localhost:7001/eureka

3.抽取自己的配置文件

把Config Client自己的配置保存到config-client-dev.yml,
并且提交到Config Server的仓库管理:

# 开发环境
server:
port: 8004 spring:
profiles: dev
application:
name: config-client-dev config:
info: config info dev

4.抽取访问Eureka的配置文件

把访问Eureka的配置保存到eureka-client-dev.yml,
并且提交到Config Server的仓库管理:

eureka:
instance:
hostname: localhost
prefer-ip-address: true
client:
service-url:
register-with-eureka: true
fetch-registry: true
defaultZone: http://eureka:eureka123456@localhost:7001/eureka

5.抽取访问Config Server的配置文件

删除原来的application.yml文件,
本地新建bootstrap.yml:
把访问Config Server的配置保存到bootstrap.yml:

spring:
cloud:
config:
label: master
name: config-client,eureka-client
profile: dev
uri: http://config:config123456@localhost:9009

这样每个Config Client本地都只需要这样一个bootstrap.yml。

6.启动服务

先启动Config Server,
再启动Eureka Server,
最后启动Config Client,
发现Config Client能够正常启动,
并且提供业务服务,配置成功。

7.公共配置方案2

由于Config Client会默认读取配置中心application.yml配置,
可以通过application.yml作为公共配置文件,
把所有的公共配置放进去,
但是每个客户端都会读取到相同的配置,
没有上面的方案1针对性强。

8.Config Client修改bootstrap.yml

去掉bootstrap.yml中spring.cloud.config.name属性的eureka-client:

spring:
cloud:
config:
label: master
name: config-client
profile: dev
uri: http://config:config123456@localhost:9009

9.抽取公共application-dev.yml文件

新建application-dev.yml文件,
把访问Eureka的配置放进去,
也可以放入数据库连接等其他公共配置,
并且提交到Config Server的仓库管理:

eureka:
instance:
hostname: localhost
prefer-ip-address: true
client:
service-url:
register-with-eureka: true
fetch-registry: true
defaultZone: http://eureka:eureka123456@localhost:7001/eureka

10.重启服务

重启服务成功后,
发现Config Client仍然能够注册到Eureka,
并且提供业务服务,方案2配置成功。
另外如果config-client-dev.yml和application-dev.yml存在相同配置,
则以config-client-dev.yml的配置为准。

11.参考文章

Spring-Cloud-Config 多服务公共文件配置

SpringCloud创建Config多客户端公共配置的更多相关文章

  1. SpringCloud创建Config读取本地配置

    1.说明 Config Server获取配置支持的方式很多, 包括Git仓库(github/gitee等),任何与JDBC兼容的数据库, Subversion,Hashicorp Vault,Cred ...

  2. SpringCloud创建Config Client配置读取

    1.说明 本文详细介绍配置中心客户端使用方法, 即Config Client到Config Server读取配置, 这里以创建Config Client服务为例, 基于已经创建好的Config Ser ...

  3. SpringCloud创建Config Client通过Eureka访问Config

    1.说明 本文详细介绍配置中心客户端使用方法, 即Config Client到Config Server读取配置. 读取配置的方式有两种, 第一种是直接配置Configer Server的URL, 第 ...

  4. SpringCloud创建Config模块

    1.说明 本文详细介绍Spring Cloud创建Config模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 创建Config模块这个子工 ...

  5. springcloud之config 配置管理中心之配置属性加密解密

    1.为什么要加密解密? 为了维护项目的安全性. 2.配置加密解密的前提是什么? 要进行JCE下载,然后替换掉jdk的security文件: 下载链接:http://www.oracle.com/tec ...

  6. springcloud(四):Eureka客户端公共组件打包方式

    ,      一.前言  各位大佬应该知道,在大型项目中都需要有数据传输层,一般项目都采用的是MVC结构,如果有10个表,则会创建10个实体类,在各个层之间应该使用实体类传递数据: 在微服架构中,也许 ...

  7. SpringCloud创建Eureka Client服务注册

    1.说明 本文详细介绍微服务注册到Eureka的方法, 即Eureka Client注册到Eureka Server, 这里用任意一个Spring Cloud服务为例, 比如下面已经创建好的Confi ...

  8. 【微服务】- SpringCloud中Config、Bus和Stream

    文章目录 SpringCloud中Config 1.Config的简介 官网 分布式系统面临的问题 config是什么 如何使用 能做什么 与git的配合使用 2.Config服务端的配置和测试 准备 ...

  9. SpringCloud系列——Config 配置中心

    前言 Spring Cloud Config为分布式系统中的外部化配置提供了服务器端和客户端支持.有了配置服务器,您就有了一个中心位置来管理跨所有环境的应用程序的外部属性.本文记录实现一个配置中心.客 ...

随机推荐

  1. mysq中char,varchar,text的区别

    mysql5.0.3以后,n都表示字符数(varchar(n)) 检索效率 char > varchar > text 当varchar长度超过255之后,跟text一致,但是设置varc ...

  2. 【C/C++】链表

    #include <bits/stdc++.h> using namespace std; struct node { int data; // 数据 node* next; // 指针 ...

  3. selenium: where to get ChromeDriver?

    address: http://npm.taobao.org/mirrors/chromedriver

  4. 为什么在集合中不能使用int关键字作为类型

    解释: 1.Int是基本数据类型,Integer是Int的引用类型,定义集合的时候不能使用基本数据类型,需要使用对应的引用类型 2.int是基本数据类型,Integer是他的包装类,包装类主要用在类型 ...

  5. 如何用CodeBlocks调试?

    一.简介 这篇文章我主要会介绍CodeBlocks的调试功能,并简单讲述如何使用它. 二.前言 大家好,最近和小伙伴们讨论修改程序的时候,我突然想到,授人以鱼不如授人以渔(指调试),于是这篇文章应运而 ...

  6. Jenkins构建通知

    目录 一.简介 二.推送到gitlab 三.邮件通知 自带配置 Email Extension 四.钉钉通知 五.脚本钉钉通知 六.HTTP请求通知 一.简介 类似于监控报警,jenkins在配置持续 ...

  7. 基于bootstrap的模态框使用

    使用步骤两步 1:按顺序引入以下三个文件 <link rel="stylesheet" href="../css/bootstrap.min.css"&g ...

  8. IOS开发入门教程-总结篇-写给狂热的编程爱好者们

    程序发轻狂,代码阑珊,苹果开发安卓狂!--写给狂热的编程爱好者们 写在前面的话 学习iOS应用程序开发已有一段时间,最近稍微闲下来了,正好也想记录一下前阶段的整个学习过程.索性就从最基础的开始,一步一 ...

  9. [BUUCTF]REVERSE——Youngter-drive

    Youngter-drive 附件 步骤: 例行查壳儿,32位程序,upx壳儿 利用网上找的upx脱壳儿工具脱完壳扔进ida,首先检索程序里的字符串,发现了有关flag的字样,跟进,当source=T ...

  10. [BUUCTF]PWN——[ZJCTF 2019]Login

    [ZJCTF 2019]Login 附件 步骤: 例行检查,64位程序,开启了canary和nx保护 2. 试运行一下程序 3. 64位ida载入,检索字符串,在程序里找到了用户名admin和密码2j ...