Spring Cloud — 统一配置中心 Config

Spring Cloud Config 配置中心,实现配置服务。开发者可以使用配置服务器集中地管理所有服务的各种环境配置文件。配置服务中心默认采用Git的方式进行存储,可以对环境配置进行版本管理。

1 Spring Cloud Config 入门

maven依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

在Application类加上@EnableConfigServer注解

application.yml 配置如下:

server:
  port: 9010
spring:
  application:
    name: config
  cloud:
    config:
      server:
        git:
          uri: git仓库地址
          username: 账号
          password: 密码

1.1 创建应用配置文件

为eureka、provider、consumer、zuul等微服务创建配置文件。(原项目配置文件可删除。)

图 git 仓库中的配置文件

application.yml:

logging:
  level:
    org:
      springframework: INFO
eureka:
  instance:
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://localhost:8060/eureka

provider.yml:

eureka:
  client:
    register-with-eureka: true
    fetch-registry: false
message: hello provider

provider-dev.yml

message: hello provider-dev

对于上面的微服务项目,还需要加上下面的依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

1.1.1 引导上下文

bootstrap.yml(或properties),Spring Boot应用启动时会根据这个配置文件加载属性并进行解析。对于上面的服务,我们需要在这个配置文件中,配置好端口号、服务名称、配置服务器地址及所启用的profile等。

consumer服务的bootstrap.yml

server:
  port: 8080
spring:
  application:
    name: consumer
  cloud:
    config:
      uri: http://localhost:9010

配置好微服务的bootstrap.yml后,依次启动config、eureka、provider、consumer、zuul微服务。

2 配置资源库

Spring Cloud Config 默认使用Git库作为配置资源库。

2.1 配置规则

微服务启动时,会读取配置的bootstrap.yml文件,配置服务器从git仓库中拉起配置信息,有三个配置比较关键:1)应用名称{application} (spring.application.name)、环境名{profile} (spring.profiles.active)、标签{label} (spring.cloud.config.lable)。

比如provider服务,应用名为provider,环境名为dev(可配置多个,用逗号隔开)。那么配置服务器将会为其从git仓库中拉取provider.yml、provider-dev.yml配置文件。标签则觉得了从哪个代码分支下拉取。

2.2 整合Eureka

配置服务可以像普通微服务一样,注册到Eureka中。需要进行如下的修改:

1、配置服务config增加对Eureka的依赖,并在Application类中,添加@EnableDiscoveryClient注解。

2、配置服务的bootstrap.yml中,添加eureka的服务器地址

eureka:
  instance:
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://localhost:8060/eureka

3、对于其他(除Eureka、config)服务,bootstrap.yml中,添加对eureka的服务器地址。并修改config的服务地址,由ip+端口访问,改为服务名称访问。(下面示例为provider服务)

spring:
  profiles:
    active: default
  application:
    name: provider
  cloud:
    config:
      discovery:
        enabled: true
        service-id: config
eureka:
  instance:
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://localhost:8060/eureka
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值