当前位置: 首页 > news >正文

湘潭做网站价格找磐石网络一流权威发布

湘潭做网站价格找磐石网络一流,权威发布,上海中学官网首页,辽宁沈阳今天消息1 缘起 项目中使用了第三方的服务, 第三方服务偶尔会出现不稳定、连接不上的情况, 于是,在调用时为了保证服务的相对高可用,添加了超时连接重试, 当连接第三方服务超时时,多重试几次,比如3次&a…

1 缘起

项目中使用了第三方的服务,
第三方服务偶尔会出现不稳定、连接不上的情况,
于是,在调用时为了保证服务的相对高可用,添加了超时连接重试,
当连接第三方服务超时时,多重试几次,比如3次,三次后仍连接不上,抛出异常,
在实际的测试过程中,重试一次即可连接到第三方服务,
提高了服务的可用性。

2 spring-retry

Spring提供了重试项目:spring-retry,用于处理项目中需要重试的方法,
spring-retry中提供了自定义参数,如重试次数、指定重试情况、重试延迟时间等,
满足不同的重试场景。

2.1 小插曲:试错过程

搜索SpringBoot如何使用重试注解时,发现需要使用spring-retry这个项目,在Maven仓库搜索了一下spring-retry,发现有多个版本,如下图,选择了最新版本2.0.4,启动项目时发现,无法运行。
环境:
Java8
SpringBoot2.4.5

在这里插入图片描述

<!-- https://mvnrepository.com/artifact/org.springframework.retry/spring-retry -->
<dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId><version>2.0.4</version>
</dependency>

异常信息如下,版本不一致,进入spring-retry项目,查看项目配置。
在这里插入图片描述
java: 无法访问org.springframework.retry.annotation.Backoff
错误的类文件: /D:/install/maven/apache-maven-3.8.8/my-repository/org/springframework/retry/spring-retry/2.0.4/spring-retry-2.0.4.jar!/org/springframework/retry/annotation/Backoff.class
类文件具有错误的版本 61.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。

查看spring-retry项目的配置文件,发现java版本为17,所以,使用java8无法启动项目,
因此,需要选择spring-retry对应Java8的版本。
在这里插入图片描述

2.2 正确过程

2.2.1 配置依赖

不指定spring-retry版本,Maven会自动下载合适的版本,本次自动下载的版本为1.3.1。

<!-- https://mvnrepository.com/artifact/org.springframework.retry/spring-retry -->
<dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId>
</dependency>

在这里插入图片描述

2.2.2 重试注解@Retryable

为方法添加@Retryable注解,即可在方法遇到异常时,重试指定次数。
在这里插入图片描述

常用参数如下,如有其他开发需求,可继续查看源码中的其他参数。

序号参数描述
1value触发重试的异常情况
2maxAttempts最大重试次数,默认重试3次
3backoff补偿机制,delay重试延迟时间,单位:毫秒;multiplier延迟时间比例,延迟的具体时间为delay*multiplier(multiplier>0时生效,默认multiplier为0),当multiplier为0时,延迟时间即为delay

2.2.3 添加启动注解@EnableRetry

启动类中添加开启重试注解:@EnableRetry
配置样例如下:
在这里插入图片描述
启动重试@EnableRetry后,Spring会全局启动重试注解@Retryable,在执行重试方法时,通过CGLIB代理方法,根据注解的元数据进行重试,EnableRetry源码如下:
org.springframework.retry.annotation.EnableRetry
在这里插入图片描述

2.2.4 测试重试

在这里插入图片描述
重试结果:
重试参数:5次,延迟:2秒,比例:2
重试间隔:
第二次:第一次~第二次:2秒
第三次:第二次~第三次:22=4秒
第四次:第三次~第四次:4
2=8秒
第五次:第四次~第五次:8*2=16秒
在这里插入图片描述

3 小结

(1)Spring提供重试项目:spring-retry,支持自定义参数,如重试次数、指定重试情况、重试延迟时间等,满足不同的重试场景;
(2)spring-retry生效有两处配置:启动配置@EnableRetry,重试配置:@Retryable;
(3)延迟时间:第n次~第n+1次 第n次delay*multiplier,上一次的dealy与比例的乘积;
(4)使用spring-retry时需要注意与Java版本的匹配,不同的Java版本使用不同的spring-retry版本,以及不同的重试参数。

http://www.qdjiajiao.com/news/3670.html

相关文章:

  • 有没有免费的室内设计软件seo网站优化案例
  • 虚拟主机与网站建设推广公司产品
  • 企业网站怎么做的长沙网络推广外包费用
  • 做影视网站算侵权吗seo在线优化平台
  • 做网站 长泰安百度公司代理商
  • 微信官方网站下载廊坊seo关键词排名
  • 山东网站seo设计今日刚刚发生的军事新闻
  • 炫酷做网站背景图网站开发流程图
  • 网站建设公司特色江苏企业seo推广
  • 美食网站开发的目的合肥最新消息今天
  • 嘉兴型网站系统总部seo合作代理
  • 有没有免费做片头的网站网络seo优化平台
  • 做网站有什么用广告公司取名字参考大全
  • 工作时做网站使用软件搜索引擎优化是什么意思啊
  • 2019做网站的出路线上教育培训机构十大排名
  • 诸城做网站的公司独立站推广
  • 网络销售怎么做网站推广方案如何写
  • 网站内部搜索怎么做中央人民政府
  • 网站建设上门按摩哪家好网络营销策划模板
  • 网站开发只要便民信息微信平台推广
  • 什么网站做的好看的苏州seo门户网
  • 南昌网站建设好企业网站福州seo按天付费
  • 临沂网站建设培训学校百度搜索简洁版网址
  • 山东网站建设价格国外免费网站域名服务器查询软件
  • 运城做网站价格做外贸怎么推广
  • 解决wordpress更改新域名后网站不能访问的问题网站服务器怎么搭建
  • 模板网站有利于做seo吗深圳网络营销推广服务
  • 临安做网站的公司百度搜索关键词优化
  • java做网站涉及的技术云推广
  • 深圳涂料网站建设响应式网站模板的应用