- 使用spring cloud config每次更改配置后,都需要重启服务才能更新配置,这样肯定是不行的,spring cloud支持通过AMQP来实现配置的实时更新。
- 如果要使用spring cloud的amqp,需要安装rabbitmq。rabbitmq的默认用户和密码都是guest,而默认端口是5672
在config-server和client-a两个模块下的pom文件添加
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
-
这里说明下spring-boot-starter-actuator是spring-boot自带的监控模块,我们要使用spring-cloud-starter-bus-amqp的话,也必须加上。
-
修改client-a模块的配置文件,主要是加上rabbitmq的配置,修改后如下,而config-server的配置文件不用修改
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
- 完整配置如下:
注意:要达到配置自动更新,这里需要修改client-a的TestController,添加@RefreshScope注解
,修改git上的配置文件以post形式访问配置中心的http://localhost:8030/bus/refresh 来触发配置更新
- 现在虽然可以不用重启服务就更新配置了,但还是需要我们手动操作,这样还是不可取的。所以,这里就要用到git的webhooks来达到自动更新配置。打开git上配置仓库的地址,添加webhooks