为什么要使用Config组件
1.可以有效解决分布式环境中配置不统一的问题。
2.更改配置时不用重启服务。
什么是配置中心Config
Spring Cloud Config 是用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密 / 解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。
配置中心Config怎样解决分布式环境中配置不统一的问题和实时更新配置
springcloud有着强大的生态支持,其自带的分布式配置中心可以有效解决分布式环境中配置不统一的问题,提供一个中心化的配置中心。并且依靠其springcloud_bus(rabbitMq提供订阅)和github或者gitlab自带的webhook(钩子函数)可以实现将修改好后的配置push到远程git地址后,通过访问配置服务器的endPoints接口地址,便可将配置中心的变化推送到各个集群服务器中。
首先本次采用的spring_cloud版本是:Finchley.RELEASE。spring_boot版本是2.0.3.RELEASE,
配置中心服务器的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-monitor</artifactId>
</dependency>
新建github的仓库,放置配置文件。
配置文件:application.yml
server:
port: 8787
#注册中心
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
#配置放置配置文件的git地址
spring:
application:
name: config
cloud:
config:
server:
git:
uri: https://github.com/XXX.git
username: XXX@foxmail.com
password: XXX
#保存到本地的配置仓库中
basedir: E:\springcloud\config-repo
management:
endpoints:
web:
expose: "*"
启动配置中心,看是否注册到了注册中心
查看rabbitMQ看是springcloud_Bus是否在队列中
在github修改配置,查看配置文件发现更新了配置文件