为什么需要配置服务中心?
1、统一维护
2、配置内容安全与权限
微服务之config server
注册到注册中心
启动类加注解:
@EnableConfigServer
@SpringCloudApplication
@EnableDiscoveryClient
@SpringCloudApplication
@EnableDiscoveryClient
/{name}-{profiles}.yml
<=======>
name 微服务名称 profiles 配置文件名
/{lable}/{name}-{profiles}.yml
<=======> lable 分支 name 微服务名称 profiles 配置文件名
config client
cloud:
config:
name: ${spring.application.name},base,rabbitmq,eureka
discovery:
enabled: true
service-id: config
label: master
fail-fast: true
bus:
refresh:
enabled: true
微服务单元:如果没有注册到注册中心或者配置服务中心没有指定,会默认取localhost:8888的配置文件
服务开启:spring.cloud.config.discovery.enabled
DiscoveryClientConfigServiceBootstrapConfiguration
配置中心关键(服务发现配置类)
DiscoveryClientConfigServiceBootstrapConfiguration
2022-10-31 12:15:32.085 INFO [7d5f039175af5088][7d5f039175af5088][] [io-30866-exec-7] c.c.c.ConfigServicePropertySourceLocator 87 : Fetching config from server at : http://ip:port/
2022-10-31 12:15:32.529 INFO [7d5f039175af5088][7d5f039175af5088][] [io-30866-exec-7] c.c.c.ConfigServicePropertySourceLocator 87 : Located environment: name=base,redis,eureka,job,common, profiles=[dev], label=master, version=9a6d63f66ea87db71a7f737a093be73e228c35e1, state=null
git上的配置,与本地配置,dev环境时需要特别注意,服务发现配置项的调整!
手动刷新(/actuator/refresh,与SpringBoot版本有关)
curl -X POST "http://ip:port/actuator/refresh
自动刷新,利用SpringCloud Bus
引入RabbitMQ依赖,配置
使用了配置项的Bean,类上加上注解@RefreshScope
配置webhook
便可以实现全自动刷新了!