Easy Retry 发布 2.0 版本
分布式系统大行其道的当前,系统数据的准确性和正确性是重大的挑战,基于 CAP 理论,采用柔性事务,保障系统可用性以及数据的最终一致性成为技术共识 为了保障分布式服务的可用性,服务容错性,服务数据一致性 以及服务间掉用的网络问题。依据 "墨菲定律",增加核心流程重试, 数据核对校验成为提高系统鲁棒性常用的技术方案
特性
- 易用性 业务接入成本小。避免依赖研发人员的技术水平,保障重试的稳定性
- 灵活性 能够动态调整配置,启动 / 停止任务,以及终止运行中的重试数据
- 操作简单 分钟上手,支持 WEB 页面对重试数据 CRUD 操作。
- 数据大盘 实时管控系统重试数据
- 多样化退避策略 Cron、固定间隔、等级触发、随机时间触发
- 容器化部署 服务端支持 docker 容器部署
- 高性能调度平台 支持服务端节点动态扩容和缩容
- 多样化重试类型 支持 ONLY_LOCAL、ONLY_REMOTE、LOCAL_REMOTE 多种重试类型
- 重试数据管理 可以做到重试数据不丢失、重试数据一键回放
- 支持多样化的告警方式 邮箱、企业微信、钉钉、飞书
客户端与服务端数据交互图
#系统架构图
分布式系统重试的重要性(这款分布式重试组件,治好了我的重试强迫症!)
在分布式系统中,由于网络延迟、节点故障、消息丢失等原因,操作可能会失败。重试机制在分布式系统中显得尤为重要,以下是一些原因:
- 网络不可靠性:在分布式系统中,由于网络的不可靠性,消息可能会丢失或延迟。重试机制可以确保消息被发送和接收,从而提高系统的可靠性和消息传递的可靠性。
- 事务处理:在分布式系统中,事务可能会因为网络延迟等原因失败。重试机制可以确保事务被正确提交,从而保证数据的最终一致性。
- 节点故障:分布式系统可能会由于节点故障而导致部分或全部服务不可用。重试机制可以确保节点重新启动后,服务能够自动恢复并继续运行。
- 提高系统可用性:重试机制可以确保在发生异常情况时,系统能够尝试自动恢复,避免出现系统宕机或无响应的情况,从而提高系统的可用性和稳定性。 重试机制在分布式系统中非常重要,可以提高系统的可靠性、性能和消息传递的可靠性,同时还可以确保数据的一致性和服务的可用性。
重试的风险
- 重试放大风险:这种指数放大的效应很可怕,会加大直接整体系统的负载,最坏情况下被调用的服务流量可能放大到 r 倍,不仅不能请求成功,导致整体的负载继续升高,甚至直接打挂
- 无限重试问题:如果不设置重试次数会使得业务线程一直被重试占用,这样会导致服务的负载线程暴增直至服务宕机.
- 数据安全:基于内存重试会可能造成数据丢失风险
- 网络阻塞:重试次数过多或重试间隔时间过短,就有可能导致大量的请求同时发送,从而导致网络拥塞和负载增加。
v2.0.0 发布内容:
- 添加局部保存的提示 【新增】PR
- pod列表页新增消费组显示 【新增】
- 优化IdempotentIdContext注释、手动生成幂等号改为IdempotentIdContext传参【优化】PR
- 移除重复的ThreadLocal赋值动作 【优化】PR
- 优化请求客户端的日志信息 【优化】
- 组配置校验分区时,验证对应的表是否存在 【新增】
- 修复新增组配置,分区为0校验异常 【BUG】
- POD查询新增过期时间过滤 【新增】
- 优化本地重试注解中的exclude和include,配置了仍然执行了2次重试 【BUG】
- 新增调用客户端代理类【新增】
- 新增下线路由剔除功能【新增】
- 新增路由转移功能 【新增】
- 添加启动logo 【新增】
- 优化表定义 【优化】
- 看板查询失败问题 【BUG】
- 优化详情页查询 【优化】
- 去除回调重试流量标识【优化】
- 优化日志存储逻辑【优化】
- 新增日志过期策略配置 【新增】
- 新增定时清除日志功能 【新增】
- 优化看板页面日志的查询统计【优化】
- 新增日志详情页查询调度日志列表 【新增】
- 优化详情页查询 【优化】
- 修复不同组相同场景添加失败问题
- 优化任务详情页,重试日志只显示当前场景
- 后端二次校验分区数 【优化】
- 修复回滚主键冲突问题 【BUG】
- 新增ReBalanceFilterStrategies过滤【新增】
- 新增pod列表查询【新增】
- 优化路由注册 【新增】
- 重构组ReBalance逻辑【新增】
- 优化客户端和服务端注册逻辑 【新增】
- 优化配置同步逻辑 【新增】
- 添加初始化时指定数据库的逻辑【新增】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,你的支持是我们前进的动力!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
IoTLink 版本更新 V1.34.0
更新内容 定时任务-用量补偿-正常 定时任务-用量补偿-所有-近三天 增定时任务-资费计划-卡数量同步 定时任务-订单请求API重试 API接口资费充值
- 下一篇
DjangoAdmin 敏捷开发框架 FastAPI+EleVue 版本 v1.0.0 发布
v1.0.0 更新内容:1、设计、规划和研发基础 RBAC 权限架构;2、编写框架核心底层代码;3、对系统模板进行架构设计及模板继承相关设计;4、研发框架基础模块,如字典、配置、行政区划管理等等常规基础模块;5、设计并研发代码生成器,根据表结构动态解析并生成模块文件和增删改查功能;6、设计并研发一系列其他配套功能很常规使用函数; 一款 Python 语言基于FastAPI、Vue2.x、ElementUI、MySQL等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁剪等等一系列个性化、轻量级的组件,是一款真正意义上实现组件化开发的敏捷开发框架。 软件信息 软件名称:DjangoAdmin敏捷开发框架FastAPI+EleVue版本 官网网址:https://www.djangoadmin.cn 文档网址:http://docs.fastapi.elevue.djangoadmin.cn 演示地址:http://man...
相关文章
文章评论
共有0条评论来说两句吧...