SpringCloud 微服务 (八) 统一配置中心 Config Server&Client

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

下面会使用到git仓库mysql

config server 端git

新建一个服务configspring

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

以上都是一些操做了又操做的东西,应该都比较熟悉的了数据库

在配置yml文件以前,咱们须要先在git仓库上建一个项目,这边用码云作测试,建个项目,建立个文件应该都会,贴个图,json

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

在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文件,以下app

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

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

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

能够访问到配置,说明成功了

若是设置的注册中心的端口不是默认的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实现自动刷新

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

相关文章
相关标签/搜索