1.简介
在分布式系统中,由于服务数量非常多,配置文件分散在不同的微服务项目中,管理不方便。为了方便配置文件集中管理,需要分布式配置中心组件。在Spring Cloud中,提供了Spring Cloud Config,它支持配置文件放在配置服
务的本地,也支持放在远程Git仓库(GitHub、码云)。
使用Spring Cloud Config配置中心后的架构如下图
配置中心本质上也是一个微服务,同样需要注册到Eureka服务注册中心!
创建远程仓库的操作就省略了
. 创建配置文件
在新建的仓库中创建需要被统一配置管理的配置文件。
配置文件的命名方式:{application}-{profile}.yml 或 {application}-{profile}.propertiesapplication为应用名称
profile用于区分开发环境,测试环境、生产环境等
如user-dev.yml,表示用户微服务开发环境下使用的配置文件。
这里将user-service工程的配置文件application.yml文件的内容复制作为user-dev.yml文件的内容,具体配置如下
搭建配置中心微服务 1.引入依赖 配置相关信息
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
application.yml:
server:
port: 12000
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: 仓库地址
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
启动Euraka注册中心和配置中心,访问user-dev.yml
改造user-service服务 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
- 删除 user-service 工程的 user-service\src\main\resources\application.yml 文件(因为该文件从配置
中心获取) - 创建 user-service 工程 user-service\src\main\resources\bootstrap.yml 配置文件
spring:
cloud:
config:
# 要与仓库中的配置文件的application保持一致
name: user
# 要与仓库中的配置文件的profile保持一致
profile: dev
# 要与仓库中的配置文件所属的版本(分支)一样
label: master
discovery:
# 使用配置中心
enabled: true
# 配置中心服务名
service-id: config-server
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
启动注册中心 eureka-server 、配置中心 config-server 、用户服务 user-service ,如果启动没有报错其实已经 使用上配置中心内容,可以到注册中心查看,也可以检验 user-service 的服务。
这样我们就配置好了配置中心,可以将不需要改变的application.yml文件放到git仓库管理.然后通过spring-cloud-bus+rabbitMQ 实时获取仓库地址的yml配置文件信息.