美文网首页
Spring Cloud 动态刷新配置

Spring Cloud 动态刷新配置

作者: xushiling | 来源:发表于2018-08-15 17:21 被阅读0次

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

    主动刷新

    • 重启,重启客户端,客户端启动时会再次重新加载配置
      ps:此方法并不可取,生产环境往往不能随便重启
    • 调用客户端的refresh方法
      1、客户端pom.xml添加依赖
            <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请求

    相关文章

      网友评论

          本文标题:Spring Cloud 动态刷新配置

          本文链接:https://www.haomeiwen.com/subject/ohqwbftx.html