springcloud 配置中心热更新方法
2018-10-11 本文已影响0人
程序之道
spring-cloud版本:Finchley.SR1
本文是用数据库的方式存储配置信息的,本人觉得 git 的方式实在不适合后期维护与管理
客户端的pom 配置如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
客户端yml配置 ,注意要配置上mq,需要用mq传消息:
spring:
cloud:
config:
discovery:
enabled: true # 通过服务发现的方式去找配置中心
serviceId: config_server # 配置中心的名字,直接配置名称可以在配置中心集群的时候实现负载均衡
profile: dev # 对应配置中心文件的${profile}部分
bus:
enabled: true
rabbitmq:
host: xxx.xxx.190.69
port: 5672
username: guest
password: guest
management:
endpoints:
web:
exposure:
include: bus-refresh
客户端代码 :
@RestController
@RefreshScope
public class UserController {
@Value("${mysql}")
private String name;
@RequestMapping(value = "/demo/getValue",method = RequestMethod.GET)
public @ResponseBody Object getBook(){
return name;
}
数据库中要新增一条配置,注意application 列要写上服务名
image.png调用查询配置的接口查询,没有问题ok
image.png修改配置后,调刷新接口
image.png
再次调用查询接口,发现配置文件已经更新成功了,done.