spring java 动态获取consul K/V的方法

 更新时间:2023年10月18日 12:21:17   作者: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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Java如何使用正则表达式从字符串中提取数字

    Java如何使用正则表达式从字符串中提取数字

    这篇文章主要介绍了Java如何使用正则表达式从字符串中提取数字问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • SpringBoot参数校验的一些实战应用

    SpringBoot参数校验的一些实战应用

    这篇文章主要给大家介绍了关于SpringBoot参数校验的一些实战应用,包括使用内置的参数校验注解、嵌套对象校验、分组校验以及自定义校验注解,通过这些方法,可以有效地提高系统的稳定性和安全性,需要的朋友可以参考下
    2024-11-11
  • JavaCV实现人脸检测功能

    JavaCV实现人脸检测功能

    这篇文章主要为大家详细介绍了JavaCV实现人脸检测功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Spring Cloud 网关服务 zuul  动态路由的实现方法

    Spring Cloud 网关服务 zuul 动态路由的实现方法

    网关服务是流量的唯一入口。不能随便停服务。所以动态路由就显得尤为必要。这篇文章主要介绍了Spring Cloud 网关服务 zuul 三 动态路由的相关知识,需要的朋友可以参考下
    2019-10-10
  • Java 二叉树遍历特别篇之Morris遍历

    Java 二叉树遍历特别篇之Morris遍历

    二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次。四种遍历方式分别为:先序遍历、中序遍历、后序遍历、层序遍历
    2021-11-11
  • JDBC如何访问MySQL数据库,并增删查改

    JDBC如何访问MySQL数据库,并增删查改

    这篇文章主要介绍了JDBC如何访问MySQL数据库,帮助大家更好的理解和学习java与MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • 浅谈maven单元测试设置代理

    浅谈maven单元测试设置代理

    下面小编就为大家带来一篇浅谈maven单元测试设置代理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Java实现List与数组互相转换的两种方法

    Java实现List与数组互相转换的两种方法

    在 Java 编程中,List 和数组是两种常用的数据结构,List 提供了动态大小、丰富的操作方法,而数组则以其高效的随机访问和内存效率著称,在实际开发中,我们经常需要在这两者之间进行转换,本文将深入探讨 List 与数组之间的相互转换,需要的朋友可以参考下
    2025-12-12
  • SpringBoot集成Hutool防止XSS攻击的两种解决方法

    SpringBoot集成Hutool防止XSS攻击的两种解决方法

    XSS漏洞是生产上比较常见的问题,本文主要介绍了SpringBoot集成Hutool防止XSS攻击的两种解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04
  • SpringBoot+hutool实现图片验证码

    SpringBoot+hutool实现图片验证码

    本文主要介绍了SpringBoot+hutool实现图片验证码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08

最新评论