resilience4j 重试源码分析以及重试指标采集

本文详细介绍了如何在Spring Boot项目中集成resilience4j-retry库,包括配置重试规则、自定义时间间隔,以及源码解析和监控数据统计。讨论了重试策略的适用场景和潜在问题,以及如何通过Praemethus采集重试数据进行性能监控。

前言

需求

  为了防止网络抖动问题,需要进行重试处理,重试达到阈值后进行告警通知,做到问题及时响应

技术选型

类型 同步、异步 是否支持声明式调用(注解) 是否支持监控
resilience4j-retry 同步
Guava Retry 同步 否,可通过监听器自行实现监控统计
Spring Retry 同步 否,可通过监听器自行实现监控统计

基于以上方案的对比,选择了使用resilience4j-retry,主要基于以下两点:

  1. 本身提供了监控数据,可完美接入premethus
  2. resilience4j除了提供重试能力,还具备Hystrix相同的能力,包括断路器、隔断、限流、缓存。提供与Spring Boot集成的依赖,大大简化了集成成本。(后期可考虑从Hystrix迁移到resilience4j)

提出问题

  1. resilience4j-retrry怎么集成到项目中以及怎么使用?
  2. 怎样自定义时间间隔?
  3. resilience4j-retry实现原理?
  4. 监控数据如何统计以及premethus如何采集?

问题分析

resilience4j-retrry如何使用

  1. maven引入resilience4j-spring-boot2包
    <dependency>
    		<groupId>io.github.resilience4j</groupId>
    		<artifactId>resilience4j-spring-boot2</artifactId>
    		<version>1.7.1</version>
    </dependency>
    
  2. 配置重试服务
    // 对应@Retry注解的name属性
    resilience4j.retry.instances.sendConfirmEmail.max-at
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值