使用webhook实现spring-cloud-config server端跟client端的服务配置自动刷新

SpringBoot + Webhook 实战指南:彻底告别低效轮询模式 特性轮询 (Polling)Webhook实时性低高效率低(无效请求多)高(事件驱动)服务端压力高低实现复杂度简单中等适用场景实时性不高事件驱动、系统集成结论在现代分布式系统和微服务架构中,是构建实时响应系统的首选方案。它不仅减少资源消耗,还能极大提升系统的实时性与用户体验。 阅读详情

springcloud版本:Greenwich.SR2

一、server端

1.pom.xml引进依赖

<dependencies>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-config-server</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-bus</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-config-monitor</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>
</dependencies>

2.配置文件为:

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: cloudconfig
  cloud:
    config:
      server:
        git:
          uri: https://github.com/xxx/xxx.git
          username: xxx
          password: xxx
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest
management:
  endpoints:
    web:
      exposure:
        include: bus-refresh

3.启动的Application文件加入两个注解 @EnableDiscoveryClient @EnableConfigServer

二、client端

1.pom.xml引进依赖

<dependencies>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-bus-amqp</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>
</dependencies>

2.bootstrap.yml文件(优先级别高于application.yml)

server:
  port: 8090
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
spring:
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CLOUDCONFIG
      profile: dzy
    bus:
      enabled: true
      id: ${spring.application.name}:${spring.cloud.config.profile}:${random.value}
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest
management:
  endpoints:
    web:
      exposure:
        include: bus-refresh

3.启动的Application文件加入注解 @EnableDiscoveryClient

4.配置变量注入的文件需要使用注解 @RefreshScope

三 、github的webhooks上配置地址(此处我用了小工具natapp将内网映射到外网上):http://44vwwk.natappfree.cc/monitor?path=*

四、启动eureka服务注册中心,config server端,config client端。修改git上的配置文件变量,点击保存后config server跟config client就能自动刷新配置。

踩过的坑:

1.因为springcloud2.0后提供了monitor路由给github的webhooks,所以用/monitor访问即可,如果用/actuator/bus-refresh会报错需要改很多文件所以不推荐。当时用monitor要注意server端的pom.xml文件记得引入包。

2.spring-boot-starter-actuator包 在server端还是client端都需要引入,它是监控接口的。

3.webhooks为什么只会刷新server端不刷新client端?因为spring.cloud.bus.id需要我们跟webhooks配置规则一致,所以在client的配置文件中需要加入spring.cloud.bus.id: ${spring.application.name}:${spring.cloud.config.profile}:${random.value}

ps:这边的总线我用的是rabbitMQ,如果用kafuka的同学修改下依赖跟配置文件即可。

 

SpringCloud Config(配置中心)实现配置自动刷新总结 一、实现原理 1、ConfigServer(配置中心服务端)从远端git拉取配置文件并在本地git一份,ConfigClient(微服务)从ConfigServer端获取自己对应 配置文件; 2、当远端git仓库配置文件发生改变,ConfigServer如何通知到ConfigClient端,即ConfigClient如何感知到配置发生更新? Spring Cloud Bus会向外提供一个ht... 阅读详情

相关推荐

Spring Cloud Config 微服务配置管理核心解析与实践

在微服务架构中,配置管理是确保系统灵活性和可维护性的关键技术。通过集中式配置管理,开发者可以实现配置的版本控制、动态更新和环境隔离。Spring Cloud Config作为Spring生态的配置中心解决方案,采用Git等版本控制系统作为配置存储后端,支持配置加密、动态刷新和高可用部署。其核心价值在于将‘配置即代码’理念工程化,通过RESTful API暴露配置信息,结合Spring Cloud Bus实现配置变更的实时推送。典型应用场景包括电商大促参数热更新、多环境配置隔离等,某大型系统实测显示配置变更生

weixin_33850015的博客 440

消息通讯-MQTT WebHook&SpringBoot案例

1、EMQX WebHook 是由 emqx_web_hook (opens new window)插件提供的将EMQX中的钩子事件通知到某个Web服务的功能。2、WebHook 的内部实现是基于钩子,借助 Webhook 可以完成设备在线、上下线记录,订阅与消息存储、消息送达确认等诸多业务。3、它通过在钩子上的挂载回调函数,获取到 EMQX 中的各种事件,并转发至 emqx_web_hook 中配置的 Web 服务器。

Knight_Key的博客 2397

spring-webhook-sample

spring-webhook-sample

【java】Spring Cloud --Spring Cloud Config 实现配置中心

Spring Cloud Config 是 Spring Cloud 家族中最早的配置中心,虽然后来又发布了 Consul可以代替配置中心功能,但是 Config 依然适用于 Spring Cloud 项目,通过简单的配置即可实现功能。配置文件是我们再熟悉不过的了,尤其是 Spring Boot 项目,除了引入相应的 maven 包之外,剩下的工作就是完善配置文件了,例如 mysql、redis 、security 相关的配置。

DreamSun的博客 748

webhook实例参考

Webhook是一个API概念,并且变得越来越流行。我们能用事件描述的事物越多,webhook的作用范围也就越大。Webhook作为一个轻量的事件处理应用,正变得越来越有用。Webhook有时也被称为反向API,因为他提供了API规则,你需要设计要使用的API。Webhook将向你的应用发起http请求,典型的是post请求,应用程序由请求驱动。

(一)PyBullet机器人仿真入门:从环境搭建到实例解析

本文详细介绍了PyBullet机器人仿真平台从零开始的完整入门指南。内容涵盖环境搭建、官方示例解析、核心操作(连接、世界与模型)、关节控制与状态读取,以及碰撞检测、传感器模拟等高级功能,帮助读者快速掌握这一强大的机器人仿真工具。

weixin_29062865的博客 1379

SpringBoot -- 配置中心服务/webhook

配置中心服务器 配置中心服务器,以版本的管理方式对分布式系统提供外部配置支持; SpringCloud中采用Spring Cloud Config 进行集成,而想要进行实施更新则需要采用spring cloud bus的方式, 如 Rabbit、Kafka 等。 版本管理采用 Git 这里采用Kafka,因为本地有开发测试环境 服务注册与发现参考 /bus/refr

代码行间的无聊生活的博客 8067

RoboMaster机甲大师赛备赛:如何用STM32+CAN总线精准控制四个大疆3508电机?

本文详细介绍了在RoboMaster机甲大师赛中,如何利用STM32和CAN总线技术精准控制四台大疆3508电机。从硬件架构设计、多电机ID分配、数据解析到同步控制算法,全面解析了构建高响应、低延迟底盘驱动系统的关键技术,助力参赛队伍提升机器人运动性能。

weixin_28684825的博客 133

消息通讯——MQTT WebHook&SpringBoot案例

EMQX WebHook 是由 emqx_web_hook (opens new window)插件提供的将EMQX中的钩子事件通知到某个Web服务的功能。WebHook 的内部实现是基于钩子,借助 Webhook 可以完成设备在线、上下线记录,订阅与消息存储、消息送达确认等诸多业务。它通过在钩子上的挂载回调函数,获取到 EMQX 中的各种事件,并转发至 emqx_web_hook 中配置的 Web 服务器。

不愿意做鱼的小鲸鱼の博客 1737

告别手动打卡:逍遥模拟器+宥马运动自动跑步脚本配置全流程

本文详细介绍了如何利用逍遥模拟器和自动化脚本实现宥马运动的自动跑步功能,告别手动打卡的繁琐。从环境准备、脚本部署到定位配置和智能调度,全流程指导用户完成自动化设置,提升效率并确保运动数据的真实性。

weixin_42532473的博客 539

一文带你看懂SAP-HANA的基本架构与原理

创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥。

丷江南南的博客 5076

【Spring Cloud】Spring Cloud Config

SpringCloudConfig介绍、刷新、加密

每篇博客都不是最终版,都会随着我的学习更新 1506

手教你如何使用Simulink和相关工具箱模拟和实现无人机的多机接力信号中继的建模

扩大通信范围:单架无人机的通信能力有限,通过多机接力的方式可以显著扩展通信覆盖范围。提高可靠性:当某架无人机出现故障或电量不足时,其他无人机可以接管其任务,确保通信不中断。适应复杂环境:在山区、森林等复杂地形中,多机接力可以绕过障碍物,建立稳定的通信链路。使用Communications Toolbox中的模块来模拟无线通信链路。例如,可以使用模块模拟噪声信道,或者使用模块计算信号衰减。matlab深色版本。

MHD0815的博客 767

Spring Cloud 配置中心

在微服务架构中,每个微服务⼀般都有⾃⼰的配置⽂件,⽐如数据库连接,Redis,MQ等相关配置.在不同的环境下,这些配置都会不同。维护成本⾼:每次配置修改,都需要重新部署服务.版本问题:同⼀个应⽤的不同实例,需要使⽤同⼀个版本,逐⼀部署,可能会导致版本不⼀致的问题.安全问题:⼀些敏感配置(如数据库密码) 可能会泄露,缺乏安全的管理⼿段。所以,就有了配置中⼼。可以让我们对项⽬的配置进⾏集中管理。

wk200411的博客 1201

从高德、百度地图下载POI数据?用这个工具5分钟搞定GCJ02/BD09到WGS84的坐标纠偏

本文详细解析了高德、百度地图POI数据坐标偏移问题,并提供了从GCJ02/BD09到WGS84的高效转换方案。通过开源工具如coordtransform和ArcGIS等专业软件,实现毫米级精度的坐标纠偏,适用于商业选址、GIS分析等场景,显著提升数据准确性和工作效率。

weixin_26789847的博客 449

RK3568实现蓝牙音箱功能

A2DP旨在通过蓝牙连接传输高质量的立体声音频流。它使用的基本压缩算法是SBC(Sub-Band Coding)来减小音频数据的大小,同时保持高音质,SBC压缩虽然效率较低,但是是必须支持的基本备用方案。A2DP还支持其他高级编解码器,例如AAC、aptX和LDAC,这些编解码器比SBC提供更好的音质,但这些编解码器的支持取决于设备本身的支持情况。注意A2DP协议要与AVRCP协议区分开。A2DP是传输音频的,而AVRCP是用来控制音频的。这里我用到的是RK3568 Android11。

leikko的博客 1175

Spring-cloud-config

本文介绍了Spring Cloud Config配置中心的使用方法及其与Nacos的区别。主要内容包括:1)Config Server的搭建与Git仓库配置;2)Config Client的配置方法;3)配置自动刷新机制,包括手动刷新、WebHook自动触发和Spring Cloud Bus集群广播;4)配置加密功能,支持对称和非对称加密。重点解决了微服务环境下配置动态更新问题,通过消息总线实现了多服务自动刷新,并提供了敏感信息加密方案。文章详细说明了从基础配置到高级功能的完整实现过程,包括相关依赖、配置文

多敲代码防脱发的博客 991

82、yolov11检测模型迁移瑞芯微rk3588和使用昇腾设备300i DUO卡推理 batch=1/3,支持昇腾NMS迁移npu推理

本文介绍了使用昇腾设备进行分割推理的测试流程,包括两种测试方式(cann+onnx和om)。首先验证300iDUO卡的可用性,随后创建Docker镜像和容器以搭建独立环境。通过从指定仓库拉取Ubuntu 20.04镜像,创建容器并映射目录。进入容器后安装必要组件(Python3、GCC等)和系统工具(pciutils、net-tools等),为后续模型转换和迁移做准备。整个流程旨在构建可交付给第三方的标准化测试环境。

sxj731533730 1202

Spring Cloud Config配置属性刷新之自动刷新

接上一篇的博客。Spring Cloud Config配置属性自动刷新,修改完GitHub仓库的配置属性后Config client会自动拉取来更新配置属性。 1、先要给Config client的Controller类加上RefreshScope注解。 2、Config Server中处理webhook 加上monitor依赖,待会会用上的。“/monitor“端点使用Spring Cloud Stream发布通知消息给参与的Config Server客户端。 为了避免硬编码特定的消息实现,监

WhyTemptFate的博客 619

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

10分钟快速入手Spring Cloud Config

分布式配置管理系统作用:配置管理。

Li_769532的博客 1016

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

spring cloud config使用总结

1

weixin_43822598的博客 342

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Spring Cloud Config 四种模式一文尽收囊中

在以前的项目中,我们通过配置文件、操作系统变量、Java系统属性等方式配置Java项目;在spring boot爆火之后我们的配置信息都写在application.yml或application.properties文件中,这些配置文件随着项目的打包与应用一起发布;但是当我们需要修改配置文件中的配置信息的时候,需要更新配置文件重新构建、重新发布;如果配置信息配置在操作系统环境变量或者Java系统属性中则需要重启应用。配置文件中往往有一些敏感信息,比如数据库密码、Redis密码、加密秘钥等信息。

xhbzl的博客 568

Spring Cloud Config 2.0 使用WebHooks实现Config Client客户端与Config Server服务端的配置自动刷新

具体的操作过程比较简单网上的资料也很多就不细说了,谈下注意事项,发现大家遇到最多的问题就是: 1. 通过手动发送post请求发现无效:      SpringCloud2.0以前的版本请求的路径是/bus/refresh     SpringCloud2.0以后的版本请求的路径是/actuator/bus-refresh     这些信息可以在Config Server服务端启动时的控制台...

大头之家 3585

Spring Cloud Config

1.创建项目2.添加依赖3.启用ConfigServer添加 注解开启配置中心功能:4.完善配置5.初始化Git仓裤1.配置管理2.添加config依赖3.应用程序中配置,服务端信息(服务端地址,环境)4.测试:读取配置5.多平台配置Spring Cloud Config 通过 “服务端 + 客户端” 架构实现配置集中管理,核心流程为:适用于微服务架构中多环境、多服务的配置统一管理,结合 Git 可实现版本控制,结合加密功能可保护敏感信息。

2301_80363309的博客 494

【JavaEE】【SpringCloud】配置管理 spring cloud config

spring cloud config

yj20040627的博客 874

Spring Cloud Config 使用总结

一、介绍 Spring Cloud Config Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象,因此它们非常适合Spring应用程序,但可以与任何语言运行的任何应用程序一起使用。当...

诚的博客 649
上一篇: nodeJS express mysql 高并发时连接数不够用问题 以及如何处理高并发
下一篇: springboot1.5.4升级到2.0.3遇到的问题
daizeyang2017
博客等级 码龄9年 4粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值