在微服务系统中,当服务越来越多, 服务的配置修改也会变得繁琐复杂,这时springCloudConfig就为微服务应用提供集中化配置的支持。
一下示例中SpringCloud 版本为最新的2020.0.0,注册中心为eureka。
一、流程分析
config-server服务统一从某处拉取配置文件,其他client服务在spring实例化bean之前从config-server处获取最新的配置文件,如果本地配置文件中已经存在该配置,将读取本地文件的配置。这个过程中虽然client读取了最新的配置文件,但是必须重启才能加载读取的最新配置。
为了解决重启才能读取最新配置的弊端,此时引入spring-boot-starter-actuator
二、config-server
config-server 主要是用来拉取git配置文件,同时config-server也是spring-cloud-bus的服务端
首先是config-server的yml配置
server:
port: 12900
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: http://192.168.2.168/gitlab/spring-config-test.git #配置文件所在仓库
username: allen
password: 123456789
default-label: dev #配置文件分支,不配置默认master
search-paths: resources #配置文件所在根目录
# bus相关配置
bus:
enabled: true
trace:
enabled: true
rabbitmq:
host: 192.168.2.100
port: 5672
username: admin
password: 654321
eureka:
client:
serviceUrl:
defaultZone: http://admin:admin123@192.168.2.252:8000/eureka
registryFetchIntervalSeconds: 5
instance:
prefer-ip-address: true
# actuator相关配置,bus刷新
management:
endpoints:
web:
exposure:

本文介绍了如何使用SpringCloudConfig作为微服务配置中心,通过Eureka作为注册中心,并结合SpringCloudBus实现实时配置更新。在config-server中配置了git仓库,client服务通过bootstrap.yml从config-server获取配置。当git仓库中的配置文件变更,通过POST请求/actuator/refresh可刷新配置。此外,通过SpringCloudBus,可以广播刷新指令到所有或特定服务,实现全局配置的同步更新。
最低0.47元/天 解锁文章
168万+





