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

专业建站网站河北优化seo

专业建站网站,河北优化seo,天创网站,2022口碑最好的十款手机使用 Spring Retry 重构代码的综合指南。 问题介绍 在我的日常工作中#xff0c;我主要负责开发一个庞大的金融应用程序。当客户发送请求时#xff0c;我们使用他们的用户 ID 从第三方服务获取他们的帐户信息#xff0c;保存交易并更新缓存中的详细信息。尽管整个流程看起来…使用 Spring Retry 重构代码的综合指南。 问题介绍 在我的日常工作中我主要负责开发一个庞大的金融应用程序。当客户发送请求时我们使用他们的用户 ID 从第三方服务获取他们的帐户信息保存交易并更新缓存中的详细信息。尽管整个流程看起来足够简单但这些下游系统中的每一个都是不可靠的。我们必须在每一层上实现重试并且我们必须以一种可以控制重试次数和每次重试之间的延迟的方式来实现这样我们就不会超载下游系统。由于我无法共享实际代码我会创建一个演示系统来做简单表示 由于我们必须在每一层上实现重试因此我们必须编写大量样板代码这不仅容易出错而且难以维护。由于每个下游系统都有自己的重试要求因此我们最终添加了越来越多的代码最终就像在现有垃圾之上添加垃圾一样。随着时间的推移代码变得非常脆弱即使是很小的变化也会破坏整个系统。 解决方案 为了解决这个问题我们决定使用 Spring Retry。 Spring Retry 项目地址 http://github.com/spring-proj… Spring Retry 是 Spring Batch 的一个子项目它提供了一组注解和接口我们可以使用它们向代码添加重试逻辑。它提供了一种向代码添加重试逻辑的声明性方法。 作为本文的一部分我们将了解如何使用 Spring Retry 重写现有代码以及它如何帮助我将代码库减少 1000 行。在展示新代码时我将解释每个代码的注解和用例。 在研究重构的代码之前让我们先了解一下在项目中设置 Spring 重试所涉及的步骤。 Let’s start hacking! 1. 设置 Spring 重试 将以下依赖项添加到我们的 pom.xml 文件中 dependencygroupIdorg.springframework.retry/groupIdartifactIdspring-retry/artifactIdversion2.0.0/version /dependency dependencygroupIdorg.springframework/groupIdartifactIdspring-aspects/artifactIdversion5.2.8.RELEASE/version /dependency 在 spring 配置上启用 Spring 重试并使用以下注解 Configuration EnableRetry public class ApplicationConfig { } 2. 重构代码 既然我们已经设置了 Spring Retry那么让我们开始重构代码。 以下是一个查询用户全名的代码示例左边是老代码右边是使用了 Spring Retry 的新代码。 使用 Retryable 注解我们通过 retryFor 属性指定要重试的异常数组使用 maxAttempts 属性可以指定要重试的次数。 2.具有指数退避的缓存重试 一下图片是一个添加缓存的代码示例中我指定要在 JedisConnectionException 上重试每次重试之间的延迟应为 1000 毫秒并且延迟应呈指数增长。 使用 Retryable 注解我们可以使用重试退避 backoff 属性还可以指定每次重试之间的延迟 delay。 3.外部化重试配置 我们可以轻松地将重试配置外部化到属性文件中。当我们想要重用配置并更改它们而无需重新部署应用程序时这非常有用。就我而言我创建了一个 retry.properties 文件并添加了以下属性 retry.maxAttempts2 在我的 spring 配置中包含属性文件 // Other annotations PropertySource(classpath:retryConfig.properties) public class ApplicationConfig { } 以下图片是一个先获取 MySql 连接再查数据的例子我再代码中使用了该外部化配置属性 4.消除错误时的重复操作使用 RetryListenerSupport 重试 在前面的先获取 MySql 连接再查数据的例子中我想获取以下事件的指标 连接 MySql 数据库时发出指标连接 MySql 数据库失败时发出指标当用尽所有重试次数时发出指标 再 Spring Retry 中我可以使用 RetryListenerSupport 将所有代码添加到一个位置而不是在连接到 Mysql 数据库的所有代码的每个重试块中添加相同的代码。 使用 RetryTemplate 上的 registerListener 方法注册 RetryListenerSupport Configuration public class ApplicationConfig {Beanpublic RetryTemplate installTemplate() {RetryTemplate retryTemplate new RetryTemplate();retryTemplate.registerListener(new DefaultListenerSupport());return retryTemplate;} } RetryListenerSupport 提供了三种方法我们可以重写它们来添加自定义逻辑 onError — 当出现错误时调用此方法close——当所有重试都用尽时调用该方法open — 重试开始时调用该方法 现在让我们看看重构后的代码 总结 在本文中我们了解了如何使用 Spring Retry 来减少样板代码并使代码更具可读性和可维护性。通过 Spring Retry相信你也能够消除超过 1000 行代码。
http://www.yutouwan.com/news/409993/

相关文章:

  • 做html网站搜索框教程建站之星演示
  • 工信部网站实名认证怎么做wordpress如何看网页地址
  • 微网站 .net四川建设网官网登录
  • 贵州省建设厅二建报名网站wordpress文章增加新字段
  • 哪个网站可以查企业信息wordpress term_id
  • 最新网站建设的模板下载wordpress widgetkit
  • 网站的空间是服务器吗星空视频大全免费观看下载
  • 天马网络 网站建设网络服务提供者发现用户利用其网络
  • 做网站页面的软件手机端视频网站模板
  • 上海网站搜索优化做网站找哪家好 07月
  • 承接婚庆公司网站建设有口碑的装修设计公司
  • 网站版权信息模板网站建设程序员
  • 虚拟主机子网站龙岗模板网站建设
  • excel+表格+做的网站盘点国内免费云服务器
  • 招聘网站上找在家做做外汇看哪些网站数据
  • 深圳做电商平台网站建设广州专业网站制作平台
  • 宿迁做网站哪家公司好机械技术支持东莞网站建设
  • 心悦dnf免做卡网站php大流量网站开发规范
  • 校企合作网站建设长宁微信手机网站制作
  • 中山网站上排名logo图标素材网站
  • 大型商城网站建设方案wordpress 一站多主题
  • 建站公司新闻资讯免费创建个人博客网站
  • 公司网站建设哪里好网站建设推广找stso88效果好
  • 做引流网站怎么赚钱赚谁的钱怎么推广自己的公众号
  • 电子商务网站建设与管理考试seo培训教程视频
  • 惠州网站设计公司网站开发教程 模板
  • 建设网站需要专业成都网站开发公司排名
  • 高端模板网站建设网站界面设计图片
  • 工信部网站备案要求网站设计是什么专业
  • 网站怎么才能被搜到郑州模板建站