spring java 动态获取consul K/V的方法
作者:weixin_44728369
这篇文章主要介绍了spring java 动态获取consul K/V的相关资料,主要包括springConsul配置kv路径以及自动注入consulKV到服务中,本文给大家介绍的非常详细,需要的朋友可以参考下
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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!