您现在的位置是:首页 > 文章详情

Easy Retry 发布 2.0 版本

日期:2023-07-03点击:571

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

特性

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

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

#系统架构图

分布式系统重试的重要性(这款分布式重试组件,治好了我的重试强迫症!)

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

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

重试的风险

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

 

v2.0.0 发布内容:

  1. 添加局部保存的提示 【新增PR
  2. pod列表页新增消费组显示 【新增
  3. 优化IdempotentIdContext注释、手动生成幂等号改为IdempotentIdContext传参【优化】PR
  4. 移除重复的ThreadLocal赋值动作 【优化】PR
  5. 优化请求客户端的日志信息 【优化】
  6. 组配置校验分区时,验证对应的表是否存在 【新增
  7. 修复新增组配置,分区为0校验异常 【BUG】
  8. POD查询新增过期时间过滤 【新增
  9. 优化本地重试注解中的exclude和include,配置了仍然执行了2次重试 【BUG】
  10. 新增调用客户端代理类【新增
  11. 新增下线路由剔除功能【新增
  12. 新增路由转移功能 【新增
  13. 添加启动logo 【新增
  14. 优化表定义 【优化】
  15. 看板查询失败问题 【BUG】
  16. 优化详情页查询 【优化】
  17. 去除回调重试流量标识【优化】
  18. 优化日志存储逻辑【优化】
  19. 新增日志过期策略配置 【新增
  20. 新增定时清除日志功能 【新增
  21. 优化看板页面日志的查询统计【优化】
  22. 新增日志详情页查询调度日志列表 【新增
  23. 优化详情页查询 【优化】
  24. 修复不同组相同场景添加失败问题
  25. 优化任务详情页,重试日志只显示当前场景
  26. 后端二次校验分区数 【优化】
  27. 修复回滚主键冲突问题 【BUG】
  28. 新增ReBalanceFilterStrategies过滤【新增
  29. 新增pod列表查询【新增
  30. 优化路由注册 【新增
  31. 重构组ReBalance逻辑【新增
  32. 优化客户端和服务端注册逻辑 【新增
  33. 优化配置同步逻辑 【新增
  34. 添加初始化时指定数据库的逻辑【新增PR

表字段变更明细

序号 表名 字段 操作 描述
1 retry_task_log update_dt 删除 更新时间
2 retry_task_log error_message 删除 异常信息
2 retry_task_log idx_create_dt 新增索引  
3 scene_config uk_name 变更索引uk_group_name_scene_name group_name、scene_name联合索引
4 server_node ext_attrs 新增 扩展字段
5 server_node idx_expire_at_node_type 新增索引  
6 retry_task_log_message   新增表 任务调度日志信息记录表

 

项目地址

官网: https://www.easyretry.com/

gitee:https://gitee.com/aizuda/easy-retry.git

github:https://github.com/aizuda/easy-retry.git

方便的话给项目一个 star,你的支持是我们前进的动力!

原文链接:https://www.oschina.net/news/247649/easy-retry-2-0-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章