spring java 动态获取consul K/V的方法
spring java 动态获取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} #两个fail-fast结合实现启动服务时当consul不存在时服务能正常启动 format: YAML # 表示consul上面文件的格式 有四种 YAML PROPERTIES KEY-VALUE FILES data-key: ${CONSUL_DATA_KEY:data} #表示consul上面的KEY值(或者说文件的名字) 默认是data # watch选项为配置监视功能,主要监视配置的改变 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} #目录监听延迟 heartbeat: enabled: ${HEARTBEAT_ENABLE:true} #两个fail-fast结合实现启动服务时当consul不存在时服务能正常启动 reregister-service-on-failure: ${HEARTBEAT_REREGISTER:true} #当ttl重试时,若服务不存在是否重新注册服务 ttl: ${HEARTBEAT_TTL_VALUE:20}s enabled: true # 启用服务发现 prefer-ip-address: true # 表示注册时使用IP而不是hostname hostname: localhost health-check-path: ${CONSUL_HEALTH_CHECK_PATH:${management.endpoints.web.base-path:/actuator}/health} #consul默认健康检查地址,可以通过management进行修改 health-check-critical-timeout: ${HEALTH_CHECK_CRITICAL_TIMEOUT:60s} # 健康检查失败多长时间后,取消注册 service-name: ${spring.application.name} instance-id: ${spring.application.name}-${spring.cloud.client.ip-address}-${server.port} # 服务id tags: - ${TAGNAME_GRAYSCALE:graycaletag}=${GRAYSCALE_TAG:${spring.application.name}-${SERVER_SEQUENCE:1}} - ${TAGNAME_SERVICEEXT:serviceext}=${SERVICE_EXT:default} query-passing: true #仅发现健康状态的服务
重点:
spring.cloud.consul.config.prefix consulKV前缀,低版本仅能设置一个
spring.cloud.consul.config.data-key consulKV 最后一级
spring.cloud.consul.config.default-context consulKV中间层级
通过该配置,服务会从consul的KV路径config/baseconfig/data 下的data信息
2.自动注入consulKV到服务中
consul KV 配置为
当服务启动时,服务会从consul的KV对应路径下获取配信息到服务中,再服务中通过注解ConfigurationProperties来获取
@Getter @Setter @Component @ConfigurationProperties("myconsul.kv.test") public class MyConsulKvTest { private String name; private String id; }
当修改consulKV后服务中 MyConsulKvTest 这个bean也会自动更新
到此这篇关于spring java 动态获取consul K/V的文章就介绍到这了,更多相关 java 动态获取consul K/V内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
java高并发ScheduledThreadPoolExecutor类深度解析
这篇文章主要为大家介绍了java高并发ScheduledThreadPoolExecutor类源码深度解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-11-11SpringMVC中Invalid bound statement (not f
本文主要介绍了SpringMVC中Invalid bound statement (not found)常见报错问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-05-05
最新评论