HMILY: 分布式事务解决方案的技术剖析与应用指南

HMILY: 分布式事务解决方案的技术剖析与应用指南

hmily项目地址:https://gitcode.com/gh_mirrors/hmi/hmily

是一个高性能、轻量级的分布式事务协调器,它旨在解决在微服务架构中常见的分布式事务问题。该开源项目由开发者@yu199195 创建并维护,致力于提供简单易用且高可靠的事务一致性保障。

项目简介

HMILY基于TCC(Try-Confirm-Cancel)模式设计,TCC是一种强一致性的分布式事务处理策略,适合大规模并发场景下的业务系统。它将每个业务操作拆分为尝试、确认和取消三个阶段,使得业务服务在执行过程中可以局部化地完成操作,提高了系统的性能和扩展性。

技术分析

TCC模式

  • Try 阶段:业务服务执行本地操作,并预留回滚资源。
  • Confirm 阶段:如果所有参与者都成功执行了Try,那么确认这些操作,使其变为最终状态。
  • Cancel 阶段:如果在Try阶段或Confirm阶段有失败,将进行补偿,撤销之前的操作。

HMILY的设计亮点

  1. 插件化设计:HMILY支持多种数据存储(如MySQL, Redis等)作为事务日志的持久化存储,易于扩展和定制。
  2. 轻量级API:提供了简单的Java API,让开发者轻松集成到业务代码中。
  3. 高可用性:通过Zookeeper实现服务注册发现和故障转移,保证了事务协调器的稳定性。
  4. 灵活的事务粒度:支持单服务内以及跨服务的分布式事务处理。

应用场景

HMILY适用于任何需要强一致性保障的分布式环境,特别是在以下几个领域:

  1. 电商平台:订单支付、库存扣除、物流更新等多环节需要原子化的操作。
  2. 金融系统:转账交易、保险理赔等业务需要确保资金流的一致性。
  3. 物联网:设备状态变更与云端同步等实时业务场景。

特点总结

  • 简单易用:Java API简洁明了,快速集成到现有项目。
  • 高性能:TCC模式使得业务服务本地化执行,避免全局锁,提升性能。
  • 高可扩展性:插件化设计,适应不同的业务需求和数据存储。
  • 灵活性:支持多种服务间交互模型,满足不同事务粒度的需求。

如果你正在寻找一个强大且可靠的分布式事务解决方案,HMILY无疑是值得一试的选择。其高效的处理能力和灵活的设计机制,将为你的业务带来更稳定、一致的服务体验。现在就加入HMILY的社区,探索更多可能吧!

hmily项目地址:https://gitcode.com/gh_mirrors/hmi/hmily

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Hmily是柔性分布式事务解决方案,提供了TCC 与 TAC 模式。它以零侵入以及快速集成方式能够方便的被业务进行整合。在性能上,日志存储异步(可选)以及使用异步执行的方式,不损耗业务方法方法。之前是由我个人开发,目前由我在京东数科已经重新启动,未来将会是金融场景的分布式事务解决方案。 功能: 高可靠性:支持分布式场景下,事务异常回滚,超时异常恢复,防止事务悬挂 易用性:提供零侵入性式的 Spring-Boot,Spring-Namespace 快速与业务系统集成 高性能:去中心化设计,与业务系统完全融合,天然支持集群部署 可观测性:Metrics多项指标性能监控,以及admin管理后台UI展示 多种RPC:支持 Dubbo,SpringCloud,Motan,Sofa-rpc,brpc,tars 等知名RPC框架 日志存储:支持 mysql,oracle,mongodb,redis,zookeeper 等方式 复杂场景:支持RPC嵌套调用事务 必要前提: 必须使用 JDK8+ TCC模式必须要使用一款 RPC 框架,比如:Dubbo,SpringCloud,Montan TCC模式 当使用TCC模式的时候,用户根据自身业务需求提供 try,confirm,cancel 等三个方法, 并且 confirm,cancel 方法由自身完成实现,框架只是负责来调用,来达到事务的一致性。 TAC模式 当用户使用TAC模式的时候,用户必须使用关系型数据库来进行业务操作,框架会自动生成回滚SQL,当业务异常的时候,会执行回滚SQL来达到事务的一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏赢安Simona

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值