【SpringCloud】 Config 配置中心 小结

  • 配置篇
    • 服务端
      • 基本配置
      • 指定缓存文件夹
      • Git仓库连接验证密码SSH
      • 仓库多目录配置
    • 客户端
      • 基本配置
  • 使用篇
    • 手动刷新配置文件
    • 配置服务安全验证
    • 其它

配置篇

服务端

基本配置

  1. 添加依赖
<dependency>
   <groupId>org.springframework.cloudgroupId>
   <artifactId>spring-cloud-config-serverartifactId>
dependency>

以及Eureka的,就不贴了;
2. 注册至服务中心 eureka.client.service-url.defaultZone=EurekaUrl
3. Application添加@EnableConfigServer
4. 添加Git仓库地址 :

spring.cloud.config.server.git.uri= Git Repository Url

指定缓存文件夹

spring.cloud.config.server.git.basedir=config-repo

Git仓库连接验证(密码,SSH)

  1. 用户名密码验证:
spring.cloud.config.server.git.password=yourpassword
spring.cloud.config.server.git.username= yourusername

公有仓库无需配置,仅地址即可;
2. SSH 密钥验证配置:

  • 公钥在git账号个人中心设置,github有单独的ssh设置条目,tfs在安全设置;不同平台可能不一样,自寻;
  • 私钥开头和结尾前一行需要\n,中间行需要 \ 连接;要保证秘钥内容是绿色有效值文本;
  • 目前网上关于SSH配置的博文较少,我所见几篇都是yml格式且是官方文档原文,如有问题欢迎联系
spring.cloud.config.server.git.ignore-local-ssh-settings=true
spring.cloud.config.server.git.strict-host-key-checking=false
#重点,注意格式,这里仅贴几行
spring.cloud.config.server.git.private-key=-----BEGIN RSA PRIVATE KEY-----\n\
MIIEogIBAAKCAQEAlwBdaROcsgEaO2cxxU9/0LzixFunoNHWoBaCCu//yv26/T3O\
DaNNo+zYkDCUF4nIAUdSYWO669lz7vnTg9YKURMvI61mT9Zd41GA5J0noZe+Xudj\
9EqiuHj+OjfUSRycq/z7iolhACVtXCcpya1okHcTAhOC2Vx5gH8=\n\
-----END RSA PRIVATE KEY-----
  • 此时spring.cloud.config.server.git.uri地址格式注意切换
  • github的公开仓库http连接无需验证,但是地址是[email protected]****.git的话就需要ssh证书验证
  • 秘钥配置时开头的—-BEGIN RSA PRIVATE KEY —-这个不是注释,是必须的,是秘钥的一部分

仓库多目录配置

Config服务默认仅搜索Git仓库根目录,当配置文件较多,多个项目共用一个配置仓库时,分文件夹是必然的;服务端需要额外添加配置:

spring.cloud.config.server.git.search-paths=clien1,clien2,client3

此时Config服务就会到各个文件夹下搜索对应配置文件,文件命名也需遵循规则,如:
client1-dev.properites,client1-local.properites,client3-prod.properties
同一个项目可以同时有多个环境的不同配置文件,但必须在对应名称的文件夹下;

客户端

基本配置

  • pom依赖
<dependency>
   <groupId>org.springframework.cloudgroupId>
   <artifactId>spring-cloud-config-clientartifactId>
dependency>
  • 属性配置
#配置中心服务端在eureka的注册名称;
spring.cloud.config.discovery.service-id=server name
#启用配置服务发现
spring.cloud.config.discovery.enabled=true
#客户端在服务端搜索配置时的名称,可以与spring.application.name不一致
spring.cloud.config.name=client1
#标识,local,dev,prod等,随意
spring.cloud.config.profile=dev
#分支名称
spring.cloud.config.label=master
  • 使用以上配置获取的Config服务端配置文件:
    • Git仓库master分支根目录下client1-dev.properties文件
    • Git仓库master分支下client1文件夹下client1-dev.properties文件(前提:server配置中有search-path=client1)
      至于两个都有的话应该是优先获取根目录下文件,可以发送个get请求试一下,格式为:
http://config server ip: server port/client1/dev/master
  • 前提 ConfigServer成功注册到Eureka,否则需要指定ConfigServer地址;
#config server 地址
spring.cloud.config.uri= server address

但是既然使用微服务了,那么当然要用Eureka咯

使用篇

手动刷新配置文件

  • 客户端需要添加属性management.security.enabled=false
  • 发送POST请求(bus自动刷新除外):

    • 方式一:client ip : port/refresh(刷新单个客户端)
    • 方式二 :zuul ip : port/client name/refresh (刷新Eureka注册中心所有相同服务名的配置,前提是使用了zuul)

配置服务安全验证

  1. 服务端 :添加安全包依赖
  2. 服务端 :添加属性
security.basic.enabled=true
security.user.name=configUserName
security.user.password=configPWD

-
3. 客户端 :添加安全包依赖
4. 客户端 :添加属性

#服务端配置的密码
spring.cloud.config.username=configUserName
spring.cloud.config.password=configPWD

其它

  • 无法刷新spring.application.name 、servert.port此类信息;
  • 刷新需要的pom依赖:
    如果启动时未看见如下图日志,则需要添加依赖,否则不需要;
    【SpringCloud】 Config 配置中心 小结_第1张图片

    <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-actuatorartifactId>
            <version>1.5.9.RELEASEversion>
    dependency>

    因为其实spring-cloud-config-client包中其实已经有此依赖,只是版本不同,有时需要额外添加;

  • 如有问题欢迎私信博主或邮件[email protected]交流

你可能感兴趣的:(SpringCloud)