SpringCloud教程-消息总线Bus 客户端(client)刷新(SpringCloud版本Greenwich.SR4)

SpringCloud笔记(六)SpringCloud+RabbitMQ消息总线刷新配置【Greenwich.SR1版本】 在之前的博客中介绍了一种手动刷新配置文件的方式:SpringCloud笔记(五)分布式配置中心,但是这种方式有严重的缺陷,就是当配置文件更新时,所有的客户端都必须手动POST发送actuator/refresh请求才能获取到最新的配置文件,这样未免也太麻烦了。SpringCloud Bus可以通过整合Kafka或RabbitMQ,通过发布/订阅模式,刷新配置。当Git中的配置文件更改后,只需要在C... 阅读详情


代码地址:github-spring-cloud地址

前言:前面文章讲了Spring Cloud Config配置中心如何使用,当我们在更新git上面的配置,想要获取最新的配置,需要手动刷新或者利用webhook的机制每次提交代码发送请求来刷新客户端,客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了。使用Spring Cloud Bus可以完美解决这一问题。使用消息总线需要依赖mq,本章文章将采用RabbitMq,具体怎么安装RabbitMq可以查看此文章:安装RabbitMq

消息总线(Bus)介绍

Spring cloud bus通过轻量消息代理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其他的消息指令。Spring bus的一个核心思想是通过分布式的启动器对spring boot应用进行扩展,也可以用来建立一个多个应用之间的通信频道。目前唯一实现的方式是用AMQP消息代理作为通道,同样特性的设置(有些取决于通道的设置)在更多通道的文档中。

项目示例

本章节消息总线集成在客户端,本章节在前几张SpringCloud基础上改进。

config-client-bus

添加pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>spring-cloud-learn</artifactId>
        <groupId>com.sl.learn.cloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sl.learn.cloud</groupId>
    <artifactId>config-client-bus</artifactId>

    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <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-starter-bus-amqp</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>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-hystrix -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
    </dependencies>
</project>

添加配置文件bootstrap.properties


spring.application.name=config-client-bus
spring.cloud.config.label=master
spring.cloud.config.profile=dev
spring.cloud.config.uri=http://localhost:8088/
server.port=8098

eureka.client.service-url.defaultZone=http://localhost:8080/eureka/

management.endpoints.web.exposure.include= *
management.endpoint.health.show-details= always
management.endpoint.shutdown.enabled= true
info.app.name =  spring-boot-actuator
info.app.version =  1.0.0
info.app.test =  test


## 开启消息跟踪
spring.cloud.bus.trace.enabled=true

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

启动类Application

@SpringBootApplication
@RestController
@RefreshScope
@EnableEurekaClient
@EnableDiscoveryClient
public class ConfigClientBusApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigClientBusApplication.class,args);
    }
                                   
    @Value("${helloConfig}")
    private String helloConfig;

    @RequestMapping(value = "/hi")
    public String helloConfig() {
        return helloConfig;
    }
}
  • 创建配置文件注意两点:
    rabbitmq的默认端口为:5672

  • 监控 actuator 一定要配下面这几个,不然访问http://localhost:8097/actuator会报404
    management.endpoints.web.exposure.include= *
    management.endpoint.health.show-details= always
    management.endpoint.shutdown.enabled= true

客户端分别启动两个端口8097,8098
分别访问地址:http://localhost:8098/hi和http://localhost:8097/hi
返回结果为:1233

我们对端口为8098的服务发送一个/actuator/bus-refresh的POST请求,在win10下使用下面命令来模拟webhook。curl -v -X POST http://localhost:8098/actuator/bus-refresh
在这里插入图片描述

返回结果为可以看到已经把最新的结果返回:
在这里插入图片描述

注意一点springboot2.0访问地址为:actuator/bus-refresh
在这里插入图片描述
本篇文章的消息总线在配置中心的使用机制用图表示(图片来源于网上)
在这里插入图片描述

世界地图GeoJSON数据包实战:从加载渲染到TopoJSON压缩上线 GeoJSON是一种基于JSON的开放地理空间数据格式,遵循RFC 7946规范,以纯文本存储点、线、面等几何要素,可直接被浏览器和GIS工具解析。其核心原理是用FeatureCollection组织Feature,每个Feature包含geometry和properties字段。相比shapefile,GeoJSON无需二进制依赖,更适合前端可视化与离线地图场景。在数据可视化中,常需将业务数据按国家维度映射到地图上,ECharts、D3.js、Leaflet等库均可直接加载GeoJSON实现填色与交互。然 阅读详情

相关推荐

vertxbus-client:用于HTTP桥的Vert.x事件总线客户端

vertxbus 用于HTTP桥的Vert.x事件总线客户端 用于通过mod-web-server Vert.x 2模块的HTTP Bridge连接到Vert.x EventBus的客户端javascript库。 它基于Vert.x示例中发布的原始客户端。 它只是添加了额外的配置以允许更灵活的身份验证

SpringCloud-bus-什么是Spring Cloud Bus-Client动态刷新配置文件

一)什么是SpringCloudBus Spring云总线使用轻量级消息代理链接分布式系统的节点。然后可以用它广播状态更改(例如配置更改)或其他管理指令。目前唯一的实现是使用AMQP代理作为传输,但是相同的基本功能集(以及更多依赖于传输的功能)取决于其他传输的路线图。 SpringCloudBus集成了市面上大部分的消息代理 主要解决的问题就是数据同步、数据的变更 二)使用Bus配置文件的更新 ...

失忆๑的博客 363

QB_busclient:QB_busclient 代码。 安卓总线客户端。 功能

QB_busclient 这是第一个 android 总线客户端加载。 加载版本为 1.0。 它是由 yank 和 jzt 制作的。 它包括总线客户端的基本功能,例如,签到、路线选择、捕获gps数据和用gprs传输。

SpringCloudBus +kafka配置不更新

1.目的使用Springcloudbus 去动态更新服务配置。 2.故障:刷新配置服务的端点/bus/refresh 字段属性始终不更新 3.解决:使用此注解@RefreshScope 希望能对大家有所帮助。节省大家的宝贵时间 ...

qq_36332184的博客 305

spring cloud 配置中心自动刷新

Spring cloud bus通过轻量消息代理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其他的消息指令。Spring bus的一个核心思想是通过分布式的启动器对spring boot应用进行扩展,也可以用来建立一个多个应用之间的通信频道。目前唯一实现的方式是用AMQP消息代理作为通道,同样特性的设置(有些取决于通道的设置)在更多通道的文档中。

Microapp 接入vite子应用

MicroApp接入vite版本,干货满满,手把手步骤说明,加上报错说明,赶紧上车!

outsider76557的博客 4660

关于spring cloud bus client无法自动刷新问题(版本:Greenwich.SR1)

首先这里有两个服务,一个是config server,一个是config client,主要目的是通过消费消息队列中的消息(远端git配置文件更改的消息)来进行通过spring cloud bus实现自动刷新,但是期间遇到了一些问题,以此记录。 我用的是github,然后通过添加webhook来访问config server的/actuator/bus-refresh接口,一开始用了monito...

(づ ̄ 3 ̄)づxl 1414

ABAQUS二次开发中创建SET

在ABAQUS中创建加载、边界条件时,需要使用set,创建set时需要使用对象集合对象中的Set函数,这个函数需要提供加入对象集合的列表,但这个对象列表好像并不能自行创建,只能通过ABAQUS各类对象集合中的findAt、getSequenceFromMask、getByBoundingSphere、getByBoundingCylinder或getByBoundingSphere函数得到,但这几个函数在直接使用PYTHON编程时都不太好用。这个函数返回一个字典,如下所示。

hohoyu的专栏 2483

spring bus热更新配置文件无效问题

热更新配置首先在config-client端引入相关依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-client</artifactId> ...

q372634723的博客 555

linux和mac安装+配置circos(

一定要下载完这两个包,GD才会work,要不然会报错,且-modules显示也是fail。官网的教程说的很明白,但是很多包都已经过时了需要在网上找。一般来讲,所有包的安装都不会太困难,除了GD。1.是因为官网给的链接下出来的tgz无法解压。2.我的电脑安装后GD照样是fail的。,进入这个地址下一个.tgz。第二点的原因在于,官网的情况。,进入这个地址,按部就班。GD安装困难有以下几点。搞了一天终于配置成功。

xiufan1的博客 551

【操作系统】实验楼操作系统实验三——系统调用

操作系统实验3——系统调用 环境配置 ​ 首先同样是配置环境 cd /home/shiyanlou/oslab tar -zxvf hit-oslab-linux-20110823.tar.gz -C /home/shiyanlou 实验步骤 添加函数声明 cd ~/oslab/linux-0.11/include/linux gedit sys.h //添加内容: extern int sys_whoami(); extern int sys_iam(); fn_ptr_sys_call_table

qq_46612803的博客 6358

对于使用 Spring Cloud Bus 实现通知微服务架构的配置文件的更改,请求接口不/actuator/refresh后没刷新配置值

使用SpringCloudfinchley 和 SpringBoot 2.0+ 还需要引入 &lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt; &lt;artifactId&gt;spring-cloud-starter-bus-amqp&lt;/artifactId&gt...

weixin_38391672的博客 2655

App爬虫实战篇-以华为真机手机爬取集换社的app为例

在开始学习这篇文章之前,建议你先按照之前2篇文章(和),配置必要的环境,才可以继续完成本章节内容。

youbingchen的博客 780

手把手教你使用Spring Cloud Bus来动态刷新配置

手把手教你使用Spring Cloud Bus来动态刷新配置 项目使用SpringCloud版本 :Greenwich.SR2 SpringBoot版本 : 2.1.7.RELEASE 一、Config_Server配置 1、config_server依赖 2、在启动类上添加@EnableConfigServer 3、application.yml文件配置如下 spring: appli...

weixin_42880943的博客 394

含分布式电源的配电网三段式电流保护影响仿真研究

文章摘要 本文研究了分布式电源(DG)接入对配电网三段式电流保护的影响。通过在Matlab/Simulink平台搭建含同步发电机型DG的10kV配电网模型,设计了基于傅里叶算法的三段式电流保护模块(I段瞬时速断、II段限时速断、III段定时限过流)。研究分析了不同DG接入位置、容量及故障点对保护系统的影响机理。仿真结果表明,DG接入会改变故障电流特性,可能导致三种典型问题:保护范围扩大引起误动、保护灵敏度下降导致拒动,以及保护选择性丧失。该研究为含DG配电网的保护配置与整定提供了理论依据和仿真参考,对保障分

huanghm88的专栏 270

风机叶片小规模振动监测数据集--读取测试

ETH风电叶片缺陷数据集–读取测试 数据简介 提示:这里可以添加本文要记录的大概内容: 结构健康监测是保障重要机电设备、建筑设施健康的重要技术手段。 一、lvm_read包安装 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务

cnjs1994的博客 2851

AI技术领袖动向背后的技术判断与工程实践思考

在人工智能领域,技术判断和工程实践是开发者需要掌握的核心能力。从技术原理来看,深度学习、计算机视觉等基础概念构成了AI技术的基石,而梯度下降、注意力机制等算法原理则是模型训练的关键。这些技术的价值在于能够帮助开发者建立可靠的学习路径和工程实践框架,比如通过CS231n这样的系统化课程掌握从理论到项目的完整知识体系。在实际应用场景中,开发者需要平衡技术先进性和工程可维护性,避免过度追逐热点而忽视基础积累。以Karpathy倡导的务实工程态度为例,强调简单模型优先、代码可调试性等原则,这种从'关注人'到'关注方

weixin_33802505的博客 357

手把手教你学Simulink--H桥逆变器的PWM控制设计与仿真

本文详细介绍了如何在Simulink环境中设计和仿真一个基于PWM控制的H桥逆变器。H桥逆变器广泛应用于电机驱动、UPS和可再生能源系统等领域,通过PWM技术可以有效控制输出电压的幅度和频率,减少谐波失真,提高系统效率和稳定性。文章首先介绍了所需的工具和环境,包括MATLAB/Simulink和SimscapeElectrical工具箱。接着,详细阐述了从定义任务需求、创建Simulink项目、建立基础电气模型、集成传感器模型、实现PWM控制算法到设置仿真参数和运行仿真的完整步骤。最后,文章总结了通过Sim

MHD0815的博客 720

CMSIS-FreeRTOS静态审计:工业级RTOS落地的底层逻辑与认证实践

CMSIS-FreeRTOS是ARM官方定义的RTOS抽象层标准,本质是CMSIS-RTOS v2 API与FreeRTOS内核之间的安全绑定契约。其核心原理在于三层解耦架构——底层FreeRTOS内核提供可移植调度能力,中间层CMSIS-RTOS v2实现类型安全的统一接口,顶层Binding层完成静态内存映射与编译器特性适配。该设计赋予系统确定性执行、零动态分配、中断优先级可控等关键技术价值,广泛应用于医疗电子(IEC 62304)、汽车电子(ASIL-B)及工业控制等高可靠场景。然而,真实工程落地高度

weixin_34199335的博客 336

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

spring cloud微服务分布式云架构-config配置自动刷新

本项目采用版本选择: springboot的版本是2.1.2.RELEASE springcloud的版本是Greenwich.SR1 springcloud仓库使用的是Gitee 1、下载并安装RabbitMq 下载地址:http:/ /www.rabbitmq.com/download.html 2、SpringCloud Config Server端配置 config-server pom....

springML的博客 351

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

spring cloud - config 属性自动刷新

启动config-server,启动成功后就不需要在管了; 在config-client做些修改: 在使用的controller或service的类上加上一个注解@RefreshScope 在pom中加入依赖: <dependency> <groupId>org.springframework.boot</groupI...

weixin_30687811的博客 83

关于SpringCloud Bus只刷新Config Server而不刷新Config Client的问题

在日常学习SpringCloud Config的时候,遇到了这个问题,使用webhooks进行配置文件修改的时候,发现从Config Server可以查到配置文件修改了,而从Config Client却没有修改,即便是使用了@RefreshScope依然没有效果,查看RabbitMQ,发现确实已经向MQ中发送了数据,这是怎么回事儿呢? SpringBoot版本是 2.0.6RELEASE SpringCloud版本是Finchley.SR2 原因如下:在我们开启SpringCloud Bus服务的时候,会自

MrSuper_cat的博客 355

SpringCloud Bus自动更新

在配置的服务中添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId>...

qq690452074的专栏 201

spring cloud bus 配置不能同步刷新

项目 在用spring cloud config做动态刷新,用spring cloud bus +kafka 做总线, config 配置服务项目 config-client 同步配置项目 问题: 修改配置,然后在 config 主机调用接口http://localhost:9091/actuator/bus-refresh刷新配置时,config-client的配置依然没有改变。 解决方法: 两...

pengjun1a的博客 1641

Spring Cloud Config 使用bus 实现刷新所有客户端

1.使用码云创建配置仓库(可以根据需要更改,比如github,gitlab)都一个意思 我根据服务名称创建了两个文件夹分别存放不同模块对应的配置信息 然后分别在各自的文件夹中添加属性,等接下来进行测试 sys-dev.yml的配置 web-dev.yml的配置 2.新建configServer 模块 创建一个服务端配置模块,就是创建一个springboot项目 pom中...

csdnmuyi的博客 372
上一篇: Apache Common常用jar包
下一篇: SpringCloud教程-消息总线Bus 服务端(server)刷新(SpringCloud版本Greenwich.SR4)
境里婆娑
境里婆娑 新星创作者: Java技术领域 新星创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄10年 1万+粉丝 300原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

境里婆娑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值