配置中心管理着整个系统所有yml配置文件
优点
缺点
1、新建服务,导入相关依赖
2、启动类添加注解:@EnableConfigServer
3、yml配置文件(配置Git的仓库地址,账号、密码等信息)
1、在已有微服务中添加依赖
2、配置Bootstrap.yml文件
3、删除application.yml
消息总线
实现配置的自动刷新
流程原理
1.利用码云的钩子,配置一个内网穿透地址,仓库的代码发生改变向这个地址发送一次post请求
2.url配置为配置中心的服务端地址,监听到消息后,会让消息总线通知所有微服务
3.微服务收到消息总线的通知后重新拉取最新的配置文件
4,特别注意:需要加上 @RefreshScope 动态刷新 作用域`
实操步骤
1.将消息中心服务集成消息总线
导入依赖
修改yml配置文件
client:
serviceUrl:
defaultZone: http://admin:123456@peer1:1010/eureka/,http://admin:123456@peer2:1011/eureka/,http://admin:123456@peer3:1012/eureka/ #注册中心地址
instance:
prefer-ip-address: true #使用ip地址注册
instance-id: config-server:1070 #指定服务的id
server:
port: 1070
spring:
rabbitmq: #集成RabbitMQ如果配置是默认,可以省略
host: localhost #mq连接地址
port: 5672 #mq端口
username: guest
password: guest
application:
name: config-server
cloud:
config:
server:
git:
#配置远程仓库地址,去仓库中复制
uri: https://gitee.com/little_wolf/springcloud-config-1010.git
username: 18086295423 #仓库是私有的需要账号
password: itsource123456
#actuator配置
management:
endpoint:
health:
show-details: always #打印日志
endpoints:
web:
exposure:
include: "" #向外暴露的接口,这里则表示所有的actuator接口都可以被访问
enabled-by-default: true #开启actuator监控
2.其他微服务集成消息总线
导入依赖
- 修改yml配置文件
- eureka:
client:
serviceUrl:
defaultZone: http://admin:123456@peer1:1010/eureka/,http://admin:123456@peer2:1011/eureka/,http://admin:123456@peer3:1012/eureka/ #注册中心地址
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server #服务发现的方式执行配置中心
name: application-zuul
profile: dev #环境 组成完整的文件名:application-dept-dev.yml
label: master
bus: #这行代码很重要,根据官方定义的标准来的 ,就是为了产生一个bus.id = zuul-server:dev:3434345435
id: ${spring.application.name}:${spring.cloud.config.profile}:${random.value}
rabbitmq: #集成RabbitMQ如果配置是默认,可以省略
host: localhost #mq连接地址
port: 5672 #mq端口
username: guest
password: guest
#...省略...
- 3.测试
- 云端修改yml的地址
- 不重启项目再次请求getvalue
- 查看结果发现已经动态刷新*