Spring Cloud 动态刷新配置

2018-08-15  本文已影响0人  xushiling

当config客户端启动时,会从server端获取一次配置,而后我们更新server端托管的配置之后客户端并不能获取到最新的配置,所以需要我们进行一定的处理

主动刷新

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

2、关闭client内部端口的身份认证

management.security.enabled=false

3、向当前客户端(http://xxx/refresh)发起post请求

此种方案适用性有限,当服务为集群部署或复杂架构下就不太适用了,下面介绍一种更优的方案

Bus消息总线推送刷新

这里消息中间件使用的是kafkarabbitmq集成方法与之类似,这里就不再一一描述

1、安装kafkazookeeperkafka依赖于zookeeperkafka新版本的内置了zookeeper,这里使用的是kafka2.11-1.1.1版本,最后一个支持java7的版本
2、config服务及customer增加依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-kafka</artifactId>
        </dependency>
        <!--当前版本spring cloud默认引用的无法启动,需要重新引用-->
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
            <version>1.0.3.RELEASE</version>
        </dependency>

3、增加相关配置

management.security.enabled=false
spring.cloud.stream.kafka.binder.brokers=localhost:9092
spring.cloud.stream.kafka.binder.zk-nodes=localhost:2181

4、向当前config服务端(http://xxx/bus/refresh)发起post请求

上一篇下一篇

猜你喜欢

热点阅读