Easy Retry 发布第一个 1.0.0


分布式系统大行其道的当前,系统数据的准确性和正确性是重大的挑战,基于CAP理论,采用柔性事务,保障系统可用性以及数据的最终一致性成为技术共识 为了保障分布式服务的可用性,服务容错性,服务数据一致性 以及服务间掉用的网络问题。依据"墨菲定律",增加核心流程重试, 数据核对校验成为提高系统鲁棒性常用的技术方案

特性

  • 易用性 业务接入成本小。避免依赖研发人员的技术水平,保障重试的稳定性
  • 灵活性 能够动态调整配置,启动/停止任务,以及终止运行中的重试数据
  • 操作简单 分钟上手,支持WEB页面对重试数据CRUD操作。
  • 数据大盘 实时管控系统重试数据
  • 多样化退避策略 Cron、固定间隔、等级触发、随机时间触发
  • 容器化部署 服务端支持docker容器部署
  • 高性能调度平台 支持服务端节点动态扩容和缩容
  • 多样化重试类型 支持ONLY_LOCAL、ONLY_REMOTE、LOCAL_REMOTE多种重试类型
  • 重试数据管理 可以做到重试数据不丢失、重试数据一键回放
  • 支持多样化的告警方式 邮箱、企业微信、钉钉、飞书

客户端与服务端数据交互图

#系统架构图

分布式系统重试的重要性

在分布式系统中,由于网络延迟、节点故障、消息丢失等原因,操作可能会失败。重试机制在分布式系统中显得尤为重要,以下是一些原因:

  • 网络不可靠性:在分布式系统中,由于网络的不可靠性,消息可能会丢失或延迟。重试机制可以确保消息被发送和接收,从而提高系统的可靠性和消息传递的可靠性。
  • 事务处理:在分布式系统中,事务可能会因为网络延迟等原因失败。重试机制可以确保事务被正确提交,从而保证数据的最终一致性。
  • 节点故障:分布式系统可能会由于节点故障而导致部分或全部服务不可用。重试机制可以确保节点重新启动后,服务能够自动恢复并继续运行。
  • 提高系统可用性:重试机制可以确保在发生异常情况时,系统能够尝试自动恢复,避免出现系统宕机或无响应的情况,从而提高系统的可用性和稳定性。 重试机制在分布式系统中非常重要,可以提高系统的可靠性、性能和消息传递的可靠性,同时还可以确保数据的一致性和服务的可用性。

重试的风险

  • 重试放大风险: 这种指数放大的效应很可怕,会加大直接整体系统的负载,最坏情况下被调用的服务流量可能放大到r倍,不仅不能请求成功,导致整体的负载继续升高,甚至直接打挂
  • 无限重试问题: 如果不设置重试次数会使得业务线程一直被重试占用,这样会导致服务的负载线程暴增直至服务宕机.
  • 数据安全: 基于内存重试会可能造成数据丢失风险
  • 网络阻塞: 重试次数过多或重试间隔时间过短,就有可能导致大量的请求同时发送,从而导致网络拥塞和负载增加。

业内成熟重试组件对比

区别 SpringRetry GuavaRetry EasyRetry
编程语言 Java Java Java
退避策略 支持多种策略 支持多种策略 支持多种策略
依赖生态 Spring 框架 不依赖任何框架 Spring框架、GuavaRetry
重试类型 内存重试 内存重试 多种策略 内存重试+服务重试
存储介质 内存 内存 内存+数据库
是否管控重试流量 支持多维度管控(单机重试管控、链路重试管控、重试流速管控等)
数据安全 会丢失重试数据 会丢失重试数据 基于LOCAL_REMOTE或ONLY_REMOTE持久化数据
管理重试数据 不支持 不支持 支持暂停、停止、新增、修改重试数据

相關推薦

2023-09-18

【视频演示】Easy Retry 2.3.0 & 3.0.0发布 支持Spring Boot 等多个新功能 Easy Retry  致力提高分布式业务系统一致性的分布式重试平台 易用性 业务接入成本小。避免依赖研发人员的技术水平,保障重试的稳定性 灵活

2023-08-05

Easy Retry  致力提高分布式业务系统一致性的分布式重试平台 易用性 业务接入成本小。避免依赖研发人员的技术水平,保障重试的稳定性 灵活性 能够动态调整配置,启动/停止任务,以及终止运行中的重试数据

2023-04-21

并不重视,始终处于重要但无序的"管理真空" Easy-RETRY 是一个针对业务系统重试流量的治理平台,其自身具有高可用高性能高负载的特点,服务特性有: 支持千万级别的重试流量分派 支持流量容量扩容,自动识别并处理

2023-11-16

一款致力提高分布式业务系统一致性的分布式重试与任务调度平台 易用性 业务接入成本小。避免依赖研发人员的技术水平,保障稳定性 灵活性 能够动态调整配置,启动/停止任务,以及终止运行中的任务 操作简单&nbs

2023-05-04

请求同时发送,从而导致网络拥塞和负载增加。 v1.1.0 发布内容: RetryAspect添加Ordered,支持动态调整Aop执行顺序【新增】 手动添加重试任务【新增】 更新核心字段描述【更新】 更新类名定义【更新】 删除重试retry_task

2022-10-14

来越好是整个开源社区的共同愿望,所以easy-trans本次也发布了solon的版本。     因为是第一个版本,所以功能比sp版本稍微弱一点点点点,ORM框架目前只支持MP,不支持微服务翻译。其他的和sp版本功能相同。 功能  

2024-05-01

分库的最好用的ORM,为什么是最好用的OLTP那么我们先来看一个简单的例子 用户、角色、菜单典型的多对多关联关系(隐式子查询) 其中用户和用户所在地址为一对一关系(隐式join) @Table("t_user") @Data @EntityProxy public class SysUser

2024-05-01

MySQL的第一个长期支持版 8.4 GA,一些具体变更内容如下: 功能增加/更改 认证插件:默认情况下,“mysql_native_password”认证插件被禁用,如果用户需要兼容旧的应用程序,需要在启动MySQL服务器时,启用该插件 “--mysql-nat

2023-07-20

个观点送 OSC T 恤。 MySQL 8.1 及 MySQL 8.0.34 现已正式发布。从此,MySQL 将开启创新版和稳定版同时发行的阶段。MySQL 8.1 是 MySQL 的首个创新版,该版本主要增加了如下功能: 捕捉EXPLAIN FORMAT=JSON 输出, 为 EXPLAIN F

2022-04-29

议传输数据。这个名字代表了 "Client URL"。 cURL 7.83 正式发布,更新内容如下: 安全修复 CVE-2022-22576:当使用 OAUTH2 承载令牌时,curl 可能重复使用错误的连接。 CVE-2022-27774:当 curl 跟随重定向到另一个协议或另一个端口号时

2022-05-19

和其他功能将自己与其他浏览器区分开来。 Opera 87 正式发布,该版本基于 Chromium 101(101.0.4951.64),具体更新内容如下: Easy Files: 在这个版本中,Opera 改进了 Easy Files,引入了选择多个文件的功能,使其变得更加容易使用

2023-01-29

软件简介 easy-browser 是 java 开源浏览器,基于 jxbrowser 实现。 支持 ARM X86,windows MAC (包括 M1) linux。 截图 特性 HTML5 CSS3 java-JS 互相调用 4K 64FPS 视频播放 无图模式 PDF 预览 HTML 转图片 打印 DOM 修改 开发

2023-02-03

本次更新: 更新JCEF 内核(请切到JCEF分支) 颜值提升 解决jx分支新窗口无法打开新TAB的问题 介绍: easy-browser是java开源浏览器,基于jxbrowser/JCEF实现。 支持ARM X86 架构的处理器,windows mac linux 三大操作系统。 特性 HTML5

2023-08-29

8 月 26 日「源创会」北京站,聊聊 AI 大模型与底层技术 >>> 怎么想到搞个定制浏览器? 1、公司都是JAVA/VUE程序员,定制浏览器可以在开发人员没啥学习成本的前提下搞定一些特殊的场景比如RTSP播放,串口通信等。 2、应用网