Spring Cloud Config 统一配置中心,方便维护配置文件,对一些公司对数据库密码等敏感的信息,对普通开发人员不公开,放在运维人员手上,对配置作一个隔离作用,另外项目线上的配置改动都要重新启动项目,感觉是有点繁琐的,为了解决以上问题及优化,下面来学习统一配置中心

下面会使用到git仓库



config server 端

新建一个服务config

微服务连接nacos是配置密码_数据库

微服务连接nacos是配置密码_微服务连接nacos是配置密码_02

微服务连接nacos是配置密码_微服务连接nacos是配置密码_03

微服务连接nacos是配置密码_spring_04

启动类上 加上eureka服务client注解,并且加上ConfigServer注解,套路都是一样的

微服务连接nacos是配置密码_git_05

以上都是一些操作了又操作的东西,应该都比较熟悉的了

在配置yml文件之前,我们需要先在git仓库上建一个项目,这边用码云做测试,建个项目,创建个文件应该都会,贴个图,

微服务连接nacos是配置密码_spring_06

创建一个configs.yml文件,创建文件的时候,注意把.yml后缀加上,我就漏了…

在configs.yml中,加入之前order服务的yml配置

server:
  port: 8083

spring:
  application:
    name: order
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/beginner?useSSL=false&characterEncoding=utf-8
    username: root
    password: 123456
  jpa:
    show-sql: true

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
#此处为product服务使用
PRODUCT:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

git上面的内容放置好了,下面来配置config服务中yml文件,如下

spring:
  application:
    name: config
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/daxia/spring-cloud-config
          username: daxia@foxmail.com
          password: 123456
          basedir: E:\MyCloud\config\basedir ---会将git的配置拉去到此路径下,不要写成项目根路径

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka

上面的git配置需要注意的是,如果是开源中国的git的话,就按上面写,如果是gitlab、hub的话,后面要加上.git

启动config服务(eureka服务中心是一直开启的)

浏览器访问localhost:8080/configs-a.yml就能读取到git中的配合内容,很方便

configs-a.yml中-a是必须的,格式: /{服务名字}-{环境}.yml

下面要使用order服务做测试,所以这边要复制一份内容,新建一份order-dev.yml文件,内容与configs.yml一致



config client 端

相对于config服务,其他服务就是client端,这边拿order服务作为client

在order的maven中引入依赖,作为config的client

org.springframework.cloud spring-cloud-config-client

统一配置了order服务yml,那么order中的多余的配置就不需要了,修改yml配置,

先改application.yml文件的名字为bootstrap.yml,意思是启动时,先加载bootstrap文件再加载统一配置中心的配置文件,比如:数据源应用找不到就报错,内容如下:

spring: application: name: order cloud: config: discovery: enabled: true service-id: CONFIG profile: dev

然后启动项目, 注册中心就会发现服务:

微服务连接nacos是配置密码_数据库_07

再来浏览器访问以下 http://localhost:8000/order-dev.yml

微服务连接nacos是配置密码_spring_08

可以访问到配置,说明成功了

如果设置的注册中心的端口不是默认的8761,需要将git仓库中order-dev.yml中注册中心的配置提到bootstrap.yml配置中

如果在git仓库中配置了order-dev.yml,order-pro.yml,order.yml,在启动服务的时候,读取的配置会被合并,比如启用order-dev的时候,会同时读取order,这时候order作为一个公共的存在; 有这样的处理,就可以想象一下,配置一个公共yml,其余的子yml的形式,用的不好,会引起一些尴尬的问题,需要注意

 

 

学习了统一配置中心,但是修改配置还是需要重启,下节学习结合SpringCloud Bus集合MQ实现自动刷新

------------------------------------------------------------