V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zsg1994
V2EX  ›  程序员

[爱组搭] 分布式重试服务平台 [Easy-Retry] 发布 1.3.0 版本啦

  •  
  •   zsg1994 · 2023-05-22 09:56:58 +08:00 · 1075 次点击
    这是一个创建于 551 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    特性

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

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

    #系统架构图

    分布式系统重试的重要性

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

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

    重试的风险

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

    v1.3.0 发布内容:

    1. **新增手动创建任务并上传服务端 [新增]
    2. 重构客户端请求服务端模块 [更新]
    3. 新增同步请求服务端功能 [新增]
    4. 使用策略模型重构上报模块 [更新]
    5. 限定创建组和场景仅支持字母数字和下划线 [更新]
    6. 优化 reqId 使用 AtomicLong 作为请求 id [更新]
    7. 优化部分代码描述和类名 [更新]
    8. 降低 akka 版本为 2.6.20

    项目地址

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

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

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

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

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2714 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:29 · PVG 20:29 · LAX 04:29 · JFK 07:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.