spring cloud config-服务配置的自动刷新

一、快速入门

spring cloud config-快速入门

当我们在配置中心,修改服务的配置,或者新增服务的配置,我们都要重启相应的服务。有什么方法可以不重启呢?

二、基于spring-boot-starter-actuator实现手动刷新
1.在服务(我这里是user-service)中导入pom
		 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
2.配置文件中开放端点
# 开放端点 refresh主动刷新
management.endpoints.web.exposure.include= refresh
3.放问http地址

当我们修改了git上的配置,访问需要刷新配置的服务。http://ip:端口/actuator/refresh
问题
当我们修改了服务比较多是,我们需要逐个访问每个服务,还是比较麻烦

二、基于spring-cloud-starter-bus-amqp实现手动刷新
1.config服务中添加pom
		<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>
2.config服务中添加配置

application.properties

# 开启bus 总线功能
spring.cloud.bus.enabled=true
# 开启刷新功能
spring.cloud.bus.refresh.enabled=true
# 链路开启
spring.cloud.bus.trace.enabled=true
# 开启端点
management.endpoints.web.exposure.include=bus-refresh

bus支持kafka和rabbitmq,我们导入的amqp所以用到的rabbitmq,配置rabbitmq等信息

spring.rabbitmq.addresses=localhost:5672
spring.rabbitmq.virtual-host=/
spring.rabbitmq.password=guest
spring.rabbitmq.username=guest
3.服务(user-service)中添加pom
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-bus-amqp</artifactId>
		</dependency>
4.服务(user-service)中添加配置
spring.rabbitmq.addresses=localhost:5672
spring.rabbitmq.virtual-host=/
spring.rabbitmq.password=guest
spring.rabbitmq.username=guest

如果配置文件改变,用postman等工具访问http://config服务的ip地址端口:/monitor?path=* (不行用post请求),path后面的是服务名称, *代表的是所有服务。

二、基于webhooks实现自动刷新

虽然前面访问一个地址就能完成刷新,但是可以想想怎么省去我们访问地址的步骤呢?
在git上有个webhooks
在这里插入图片描述
我们在这里配置刷新的地址,当我们这个项目里面的配置文件发生改变时,会调用这个接口,我们可以利用它来完成自动刷新。
注意
因为githup在外网上,我们这里需要配置线上的域名。我们在测试的时候可以利用natapps等穿透工具将config的内网ip暴露出去完成测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值