spring?java?動(dòng)態(tài)獲取consul?K/V的方法
spring java 動(dòng)態(tài)獲取consul K/V
1.springConsul配置kv路徑
spring: cloud: consul: enabled: ${CONSUL_ENABLED:true} host: ${CONSUL_HOST:localhost} port: ${CONSUL_PORT:8500} config: prefix: ${CONSUL_CONFIG_PREFIX:config} #consul kv前綴 fail-fast: ${CONFIG_FAIL_FAST:false} #兩個(gè)fail-fast結(jié)合實(shí)現(xiàn)啟動(dòng)服務(wù)時(shí)當(dāng)consul不存在時(shí)服務(wù)能正常啟動(dòng) format: YAML # 表示consul上面文件的格式 有四種 YAML PROPERTIES KEY-VALUE FILES data-key: ${CONSUL_DATA_KEY:data} #表示consul上面的KEY值(或者說文件的名字) 默認(rèn)是data # watch選項(xiàng)為配置監(jiān)視功能,主要監(jiān)視配置的改變 watch: enabled: true delay: ${WATCH_DELAY:${consul.watch.delay:2000}} wait-time: ${WATCH_WAIT-TIME:20} default-context: ${CONSUL_DEFAULT_CONTEXT:baseconfig} prefixes: - config discovery: fail-fast: ${DISCOVERY_FAIL_FAST:false} catalogServicesWatchDelay: ${CONSUL_DISCOVERY_CATALOG_SERVICES_WAtCH_DELAY:2000} #目錄監(jiān)聽延遲 heartbeat: enabled: ${HEARTBEAT_ENABLE:true} #兩個(gè)fail-fast結(jié)合實(shí)現(xiàn)啟動(dòng)服務(wù)時(shí)當(dāng)consul不存在時(shí)服務(wù)能正常啟動(dòng) reregister-service-on-failure: ${HEARTBEAT_REREGISTER:true} #當(dāng)ttl重試時(shí),若服務(wù)不存在是否重新注冊服務(wù) ttl: ${HEARTBEAT_TTL_VALUE:20}s enabled: true # 啟用服務(wù)發(fā)現(xiàn) prefer-ip-address: true # 表示注冊時(shí)使用IP而不是hostname hostname: localhost health-check-path: ${CONSUL_HEALTH_CHECK_PATH:${management.endpoints.web.base-path:/actuator}/health} #consul默認(rèn)健康檢查地址,可以通過management進(jìn)行修改 health-check-critical-timeout: ${HEALTH_CHECK_CRITICAL_TIMEOUT:60s} # 健康檢查失敗多長時(shí)間后,取消注冊 service-name: ${spring.application.name} instance-id: ${spring.application.name}-${spring.cloud.client.ip-address}-${server.port} # 服務(wù)id tags: - ${TAGNAME_GRAYSCALE:graycaletag}=${GRAYSCALE_TAG:${spring.application.name}-${SERVER_SEQUENCE:1}} - ${TAGNAME_SERVICEEXT:serviceext}=${SERVICE_EXT:default} query-passing: true #僅發(fā)現(xiàn)健康狀態(tài)的服務(wù)
重點(diǎn):
spring.cloud.consul.config.prefix consulKV前綴,低版本僅能設(shè)置一個(gè)
spring.cloud.consul.config.data-key consulKV 最后一級(jí)
spring.cloud.consul.config.default-context consulKV中間層級(jí)
通過該配置,服務(wù)會(huì)從consul的KV路徑config/baseconfig/data 下的data信息
2.自動(dòng)注入consulKV到服務(wù)中
consul KV 配置為
當(dāng)服務(wù)啟動(dòng)時(shí),服務(wù)會(huì)從consul的KV對(duì)應(yīng)路徑下獲取配信息到服務(wù)中,再服務(wù)中通過注解ConfigurationProperties來獲取
@Getter @Setter @Component @ConfigurationProperties("myconsul.kv.test") public class MyConsulKvTest { private String name; private String id; }
當(dāng)修改consulKV后服務(wù)中 MyConsulKvTest 這個(gè)bean也會(huì)自動(dòng)更新
到此這篇關(guān)于spring java 動(dòng)態(tài)獲取consul K/V的文章就介紹到這了,更多相關(guān) java 動(dòng)態(tài)獲取consul K/V內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實(shí)現(xiàn)自定義時(shí)鐘并實(shí)現(xiàn)走時(shí)功能
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)自定義時(shí)鐘并實(shí)現(xiàn)走時(shí)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06學(xué)習(xí)Java多線程之線程定義、狀態(tài)和屬性
這篇文章主要為大家詳細(xì)介紹了Java多線程之線程定義、狀態(tài)和屬性,感興趣的小伙伴們可以參考一下2016-02-02Maven 多模塊父子工程的實(shí)現(xiàn)(含Spring Boot示例)
這篇文章主要介紹了Maven 多模塊父子工程的實(shí)現(xiàn)(含Spring Boot示例),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04淺談對(duì)象數(shù)組或list排序及Collections排序原理
下面小編就為大家?guī)硪黄獪\談對(duì)象數(shù)組或list排序及Collections排序原理。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09