Spring Cloud 動態(tài)刷新配置

當(dāng)config客戶端啟動時,會從server端獲取一次配置,而后我們更新server端托管的配置之后客戶端并不能獲取到最新的配置,所以需要我們進行一定的處理

主動刷新

  • 重啟,重啟客戶端,客戶端啟動時會再次重新加載配置
    ps:此方法并不可取,生產(chǎn)環(huán)境往往不能隨便重啟
  • 調(diào)用客戶端的refresh方法
    1、客戶端pom.xml添加依賴
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

2、關(guān)閉client內(nèi)部端口的身份認(rèn)證

management.security.enabled=false

3、向當(dāng)前客戶端(http://xxx/refresh)發(fā)起post請求

此種方案適用性有限,當(dāng)服務(wù)為集群部署或復(fù)雜架構(gòu)下就不太適用了,下面介紹一種更優(yōu)的方案

Bus消息總線推送刷新

這里消息中間件使用的是kafka,rabbitmq集成方法與之類似,這里就不再一一描述

1、安裝kafkazookeeper,kafka依賴于zookeeper,kafka新版本的內(nèi)置了zookeeper,這里使用的是kafka2.11-1.1.1版本,最后一個支持java7的版本
2、config服務(wù)及customer增加依賴

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-kafka</artifactId>
        </dependency>
        <!--當(dāng)前版本spring cloud默認(rèn)引用的無法啟動,需要重新引用-->
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
            <version>1.0.3.RELEASE</version>
        </dependency>

3、增加相關(guān)配置

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

4、向當(dāng)前config服務(wù)端(http://xxx/bus/refresh)發(fā)起post請求

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容