Spring Cloud 2023 支持同步网关,最引人注目的新特性之一

news2024/11/15 8:36:09

图片

一、前言

在 Spring Cloud 2023 版本中,最引人注目的新特性之一就是支持同步网关。同步网关是一种新的网关实现,它可以保证请求的顺序性。在传统的微服务架构中,不同的服务之间通常通过 HTTP 协议进行通信,这种通信方式是非阻塞的,也就是说一个服务发送请求后可以立即返回,而不需要等待响应。但是在某些场景下,我们需要保证请求的顺序性,比如订单处理、金融交易等。这时我们就需要使用同步网关来实现这个需求。

同步网关通过引入一个全局锁来保证请求的顺序性,同时也可以支持异步处理请求。具体来说,当一个请求进入同步网关时,它会先尝试获取锁,如果获取成功则处理请求并返回响应;如果获取失败则等待一段时间后重试。这种方式可以保证请求按照顺序进行处理,同时也可以避免因为网络延迟等原因导致的数据不一致问题。

二、版本要求

最低版本要求 Java 17,Jakarta EE 9,Spring Framework 6.x,Spring Boot 3.x。

三、代码实现

同步网关的实现依赖于 Spring Cloud Gateway 这个组件。Spring Cloud Gateway 是一个基于 Spring Framework 5.x 和 Project Reactor 的 API 网关,它提供了丰富的功能和可扩展性。在 Spring Cloud Gateway 中,同步网关是通过 @EnableDiscoveryClient 注解来启用的,这个注解表示开启服务发现客户端功能,让应用程序能够向注册中心注册自己的服务信息。同时,@EnableCircuitBreaker 注解表示开启熔断器功能,当服务出现故障时自动进行熔断保护。

下面是一个使用同步网关的例子:

@EnableDiscoveryClient
@EnableCircuitBreaker
@SpringBootApplication
public class OrderServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderServiceApplication.class, args);
    }
}

在这个例子中,我们首先使用 @EnableDiscoveryClient 注解来启用服务发现客户端功能,让应用程序能够向注册中心注册自己的服务信息;然后使用 @EnableCircuitBreaker 注解来开启熔断器功能,当服务出现故障时自动进行熔断保护。最后使用 @SpringBootApplication 注解来启动一个 Spring Boot 应用程序。

当我们调用 OrderServiceApplication 这个类时,Spring Boot 会自动创建一个 OrderServiceApplication 实例并运行它的 run() 方法。在 run() 方法中,Spring Boot 会扫描所有实现了 CommandLineRunner、CommandLineRunnerAware、ApplicationContextAware 和 ApplicationListener 接口的类,并将它们分别注入到 OrderServiceApplication 实例中。这样我们就可以在这些类中添加自定义的功能和逻辑了。

四、结语

以上就是 Spring Cloud 2023 版本中支持同步网关这个新特性的介绍。同步网关可以帮助我们更好地控制请求的顺序性,避免因为非阻塞的通信方式导致的数据不一致问题。当然,这个新特性也需要我们在设计和实现时仔细考虑各种情况和限制条件,以确保系统的稳定性和可靠性。

五、架构图

5.1 微服务系统架构图

5.2 微服务架构技能图

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1083955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【牛客面试必刷TOP101】Day7.BM31 对称的二叉树和BM32 合并二叉树

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:牛客面试必刷TOP101 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&…

Linux系统之ip命令的基本使用

Linux系统之ip命令的基本使用 一、ip命令介绍1.1 ip命令简介1.2 ip命令的由来1.3 ip命令的安装包 二、ip命令使用帮助2.1 ip命令的help帮助信息2.2 ip命令使用帮助 三、查看网络信息3.1 显示当前网络接口信息3.2 显示网络设备运行状态3.3 显示详细设备信息3.4 查看路由表3.5 查…

DHT11 数字湿温度传感器的原理和应用范例

目录 概述 1、应用电路连接说明 2、DHT11 数据结构 3、DHT11的传输时序 3.1 DHT11 开始发送数据流程 3.2 主机复位信号和 DHT11 响应信号 3.3 数字‘0’信号表示方法 3.4 数字‘1’信号表示方法 4、实例应用 4.1 硬件描述 4.2 管脚分配 4.3 程序代码 概述 DHT…

@所有燃气企业,城燃企业数字化转型重点抓住的八个关键点

关键词:智慧燃气、燃气数字化、设备设施数字化 数字化转型是用信息技术全面重塑企业经营管理模式,是企业发展模式的变革创新,是企业从工业经济时代迈向数字经济时代的必然选择。加快推进企业数字化转型,打造数字时代企业业务运行…

2023年中国超导磁体市场规模、需求量及行业竞争现状分析[图]

超导磁体一般是指用超导导线绕制的能产生强磁场的超导线圈,还包括其运行所必要的低温恒温容器。通常电磁铁是利用在导体中通过电流产生磁场,由于超导材料在超导状态下具有零电阻特性,因此可以以极小的面积通过巨大的电流。超导磁体具有场强高…

意大利航天飞行器公司【Sidereus】完成510万欧元融资

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,位于意大利萨莱诺的航天飞行器公司Sidereus Space Dynamics今日宣布已完成510万欧元融资。 本轮融资由Primo Space和CDP Venture Capital Sgr领投,通过Italia Venture II - Fondo Impr…

element picker 时间控件,指定区间和指定月份置灰

直接上代码 <el-date-pickerv-model"fillingList.declareDate"type"month":disabled"isDisplayName"placeholder"选择填报时间"value-format"yyyy-MM":picker-options"pickerOptions"change"declareDate…

玩转ChatGPT:图像识别(vol. 1)

一、写在前面 来了来了&#xff0c;终于给我的账号开放图像识别功能了&#xff0c;话不多说&#xff0c;直接开测&#xff01;&#xff01;&#xff01; 二、开始尝鲜 &#xff08;1&#xff09;咒语&#xff1a; GPT回复&#xff1a; 这幅图显示了从2005年1月到2012年12月的…

uniapp app获取keystore等一系列常用数据

https://blog.csdn.net/deepdfhy/article/details/88698492 参考文章 一、获取安卓证书keystore的SHA1和SHA256值 参数上面引用链接 window r : $ cmd $ D: 进入D盘 $ keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore 项目名称.ke…

uniapp app端使用谷歌地图选点定位

国内需要vpn 和申请谷歌地图的Maps JavaScript API 类型的 key,指引链接这里不详细介绍 一 、我们得通过webview 跳转谷歌地图 ,需要创建一个webview页面,里面跳转承载谷歌地图的html页面,如果是放在本地的话 html文件须遵守规范 放在 “项目根目录下->hybrid->html->…

Spring三级缓存流程再梳理

本文主要是说下在使用spring时遇到了循环依赖&#xff0c;Spring利用三级缓存怎么解决 getBean(beanName)doGetBean(name, null, null, false);getSingleton(beanName)方法&#xff0c; 最后会通过addSingleton(beanName, singletonObject)存到一级缓存里面去createBean(beanN…

如何进行pyhon的虚拟环境创建及管理

无论服务器或者本地&#xff0c;创建虚拟环境都是&#xff1a; 【Python】搭建虚拟环境_python创建虚拟环境_今天自洽了吗的博客-CSDN博客 虚拟环境绑定到项目 这个是运行环境&#xff0c;可以切换任意运行环境 如果是服务器上&#xff1a;可以先source xx/bin/active&#xf…

颠覆性语音识别:单词级时间戳和说话人分离 | 开源日报 No.53

vbenjs/vue-vben-admin Stars: 19.7k License: MIT Vue Vben Admin 是一个免费开源的中后台模板&#xff0c;使用最新的 vue3、vite4 和 TypeScript 等主流技术进行开发。该项目提供了现成的中后台前端解决方案&#xff0c;并可用于学习参考。 使用先进的前端技术如 Vue3/vit…

[电源选项]没有系统散热方式,没有被动散热选项

背景 笔记本的风扇声音太大&#xff0c;想改成被动散热方式&#xff0c;又不想影响性能。 于是我打开了控制面板\所有控制面板项\电源选项&#xff0c;点更改计划设置-> 更改高级电源设置。 想把散热方式改成被动散热。发现win11中好像没有这个选项了&#xff01; 如何…

JVM(一)

字节码文件的组成: 基础信息:魔数&#xff0c;字节码文件对应的java版本号&#xff0c;访问表示public final以及父类和接口 常量池:保存了字符串常量&#xff0c;类或者是接口名&#xff0c;字段名&#xff0c;主要在接口中使用 字段:当前类或者是接口声明的字段信息 方法:当…

win10 wsl安装步骤

参考&#xff1a; 安装 WSL | Microsoft Learn 一、安装wsl 1.若要查看可通过在线商店下载的可用 Linux 发行版列表&#xff0c;请输入&#xff1a; wsl --list --online 或 wsl -l -o> wsl -l -o 以下是可安装的有效分发的列表。 使用 wsl.exe --install <Distro>…

知识体系图谱

知识体系图谱 最近更新简历的时候&#xff0c;有种好像去年到今年学了很多&#xff0c;但是都零零散散的&#xff0c;不成体系&#xff0c;就想着抽时间总结归纳一下知识体系&#xff0c;目前我个人的技术栈是这样的&#xff1a; 还是稍微有点乱&#xff0c;下一次更新的时候再…

HQChart支持的画图工具列表

HQChart支持的画图工具列表 线段类线段射线标价线垂直线箭头趋势线水平线水平线段平行射线平行线平行通道价格通道线M头W底头肩型波浪尺AB波浪尺箱型线涂鸦线段 图形类圆弧线矩形平行四边形三角形圆对称角度 文字类文本箭头NoteAnchoredTextPriceLabelPriceNote 其他江恩角度线…

Ubuntu下怎么配置vsftpd

2023年10月12日&#xff0c;周四中午 目录 首先要添加一个系统用户然后设置这个系统用户的密码给新创建的系统用户创建主目录启动vsftpd服务查看vsftpd服务的状态打开外界访问vsftpd服务所需的端口获取服务器的IP地址大功告成 首先要添加一个系统用户 useradd 用户名然后设置…

如何应对量化交易,个人股票账户如何实现量化程序化自动交易

目前股票量化交易是对个人账户开放的&#xff0c;如果你没开通&#xff0c;可能是没有找对渠道&#xff0c;很多券商的手机客户端是包含某些简易版的策略交易&#xff0c;如网格策略&#xff0c;自动止盈止损等&#xff0c;这些策略交易虽然简单、灵活性差&#xff0c;但也是量…