`
sunbin
  • 浏览: 354206 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

分布式事务管理器 ByteTCC

 
阅读更多

https://www.oschina.net/p/openjtccByteTCC 详细介绍

ByteTCC是一个基于TCC(Try/Confirm/Cancel)机制的分布式事务管理器。兼容JTA,可以很好的与Spring容器进行集成。

 一、快速入门

1.1. 加入maven依赖

<dependency>
	<groupId>org.bytesoft</groupId>
	<artifactId>bytetcc-supports</artifactId>
	<version>0.3.0-RC4</version>
</dependency>

1.2. 编写业务服务

@Service("accountService")
@Compensable(
  interfaceClass = IAccountService.class
, confirmableKey = "accountServiceConfirm"
, cancellableKey = "accountServiceCancel"
)
public class AccountServiceImpl implements IAccountService {

    @Resource(name = "jdbcTemplate")
    private JdbcTemplate jdbcTemplate;

    @Transactional
    public void increaseAmount(String accountId, double amount) throws ServiceException {
        this.jdbcTemplate.update("update tb_account set frozen = frozen + ? where acct_id = ?", amount, acctId);
    }

}

1.3. 编写confirm服务

@Service("accountServiceConfirm")
public class AccountServiceConfirm implements IAccountService {

    @Resource(name = "jdbcTemplate")
    private JdbcTemplate jdbcTemplate;

    @Transactional
    public void increaseAmount(String accountId, double amount) throws ServiceException {
        this.jdbcTemplate.update("update tb_account set amount = amount + ?, frozen = frozen - ? where acct_id = ?", amount, amount, acctId);
    }

}

1.4. 编写cancel服务

@Service("accountServiceCancel")
public class AccountServiceCancel implements IAccountService {

    @Resource(name = "jdbcTemplate")
    private JdbcTemplate jdbcTemplate;

    @Transactional
    public void increaseAmount(String accountId, double amount) throws ServiceException {
        this.jdbcTemplate.update("update tb_account set frozen = frozen - ? where acct_id = ?", amount, acctId);
    }

}

二、文档 & 样例

* 使用文档: https://github.com/liuyangming/ByteTCC/wiki
* 使用样例: https://github.com/liuyangming/ByteTCC-sample

三、ByteTCC特性

* 1、支持Spring容器的声明式事务管理;
* 2、支持普通事务、TCC事务、业务补偿型事务等事务机制;
* 3、支持多数据源、跨应用、跨服务器等分布式事务场景;
* 4、支持长事务;
* 5、支持dubbo服务框架;

四、历史版本

4.1. v0.1

* 地址:http://pan.baidu.com/s/1hq3ffxU

4.2. v0.1.2

* 地址:http://code.google.com/p/bytetcc

4.3. v0.2.0-alpha

* 地址:http://code.taobao.org/p/openjtcc
* 文档:http://code.taobao.org/p/openjtcc/wiki/index/

五、建议及改进

若您有任何建议,可以通过1)加入群537445956向群主提出,或2)发送邮件至bytefox@126.com向我反馈。本人承诺,任何建议都将会被认真考虑,优秀的建议将会被采用,但不保证一定会在当前版本中实现。

分享到:
评论

相关推荐

    基于TCC机制的分布式事务管理器源代码

    本文将深入探讨基于TCC机制的分布式事务管理器——ByteTCC。 ByteTCC是一个开源项目,其核心目标是实现一个高效且灵活的分布式事务管理器,它兼容Java Transaction API (JTA),这意味着它可以无缝地与各种企业级...

    基于Hyperf框架的TCC分布式事务组件.zip

    2. **Transaction Manager**:事务管理器负责协调整个TCC事务,跟踪每个服务的Try操作结果,并在所有服务都成功Try后,发起Confirm或Cancel操作。 3. **Coordinator**:协调器是TCC框架的核心,它管理所有事务的...

    ByteTCC Transaction Manager旨在提供一个兼容JTA的基于TCC机制的分布式事务管理器

    ByteTCC Transaction Manager旨在提供一个兼容JTA的基于TCC机制的分布式事务管理器。兼容JTA,可以很好的与EJB、Spring等容器(本文档下文说明中将以Spring容器为例)进行集成。

    (源码)基于TCC分布式事务框架的分布式事务管理系统.zip

    本项目提供了完整的TCC事务管理功能,支持多种存储后端(如文件系统、JDBC、Redis、ZooKeeper等),并且不依赖于特定的RPC框架,适用于多种分布式系统环境。 ## 项目的主要特性和功能 1. TCC事务管理 Try阶段尝试...

    基于Hyperf的TCC分布式事务-tcc-transaction.zip

    5. 配置事务管理器:设置TCC事务的超时时间、重试策略等参数,以适应不同的业务场景。 6. 测试与优化:通过实际测试验证事务的正确性和性能,根据测试结果调整服务设计和配置。 总之,"基于Hyperf的TCC分布式事务-...

    java分布式事务demo

    5. **分布式事务协调者(如TCC,Try-Confirm-Cancel)**:TCC模式下,每个服务都提供Try、Confirm和Cancel三个操作。Try是尝试执行业务操作,Confirm是确认执行,Cancel是取消操作。在所有服务的Try操作成功后,再...

    微服务分布式事务解决方案之TCC,诚信至上

    微服务分布式事务解决方案之TCC,针对支付系统环节,采用消息对列的方式

    微服务架构的分布式事务控制及解决方案视频教程

    最全分布式事务视频课程详细讲解,需要的小伙伴自行百度网盘下载,...4.分布式事务解决方案之TCC(hmily) 5.分布式事务解决方案之可靠消息最终一致性 6.分布式事务解决方案之最大努力通知 7.分布式事务综合案例分析

    分布式事务分类,xa,at,tcc,sega

    通过这种方式,Seata AT模式简化了开发者的工作量,让他们只需关注业务逻辑,而分布式事务的管理和控制则交由Seata自动处理。 ### 总结 本文从分布式事务的基础概念出发,介绍了ACID特性和CAP理论,随后深入探讨了...

    ByteTCC:ByteTCC是基于TCC(TryConfirmCancel)机制的分布式事务管理器。 它与JTA规范兼容。 用户指南

    ByteTCC是基于Try-Confirm-Cancel(TCC)机制的分布式事务管理器的实现。 ByteTCC与JTA兼容,并且可以与Spring和其他Java容器无缝集成。 1.快速入门 1.1添加Maven依赖 1.1.1。 春云 &lt; groupId&gt;org.bytesoft ...

    TCC实现分布式事物,java 源码

    5. **事务管理框架(Transaction Manager)**:如`tcc-transaction-parent`,这是一个Java实现的TCC事务管理框架,提供了基础设施支持,包括事务注册、状态管理、回调处理等。 在使用`tcc-transaction-parent`框架...

    tx-manager.rar(lcn 分布式事务管理协调器)

    LCN(Local Connection Normalization)分布式事务管理协调器是解决这个问题的一种方案。"tx-manager.rar" 是一个包含了L CN分布式事务管理器的压缩包文件,它为开发者提供了一套完整的工具和服务,用于在分布式环境...

    ByteTCC:ByteTCC是基于TCC(TryConfirmCancel)机制的分布式事务管理器。 它与JTA规范兼容。 用户指南:https:github.comliuyangmingByteTCCwiki

    ByteTCC是基于Try-Confirm-Cancel(TCC)机制的分布式事务管理器的实现。 ByteTCC与JTA兼容,并且可以与Spring和其他Java容器无缝集成。 1.快速入门 1.1添加Maven依赖 1.1.1。 春云 &lt; groupId&gt;org.bytesoft ...

    分布式事务若依框架文档

    - **TCC模式**:TCC模式(Try-Confirm-Cancel)是一种通过预检查(Try)、确认(Confirm)和取消(Cancel)三个阶段来保证分布式事务一致性的方法。 - **Saga模式**:Saga模式是一种长活事务模式,通过一系列本地...

    (源码)基于SpringCloud和Hmily的分布式事务管理系统.zip

    # 基于Spring Cloud和Hmily的分布式事务管理系统 ## 项目简介 本项目是一个基于Spring Cloud和Hmily框架的分布式事务管理系统。Hmily是一个高性能的分布式事务框架,支持TCC(TryConfirmCancel)模式,能够确保在...

    springboot多数据源即分布式事务解决方案

    SpringBoot提供了多种分布式事务管理器,如JTA(Java Transaction API)和Spring的PlatformTransactionManager。 JTA是Java EE平台的标准,支持全局事务。在SpringBoot中,可以使用Atomikos或Bitronix这样的第三方...

    深入理解分布式事务,高并发下分布式事务的解决方案

    分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在...

    深入理解分布式事务

    在这样的场景下,事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。例如,一个电子商务平台可能会涉及订单系统、库存系统和支付系统等多个服务,这些服务通常部署...

Global site tag (gtag.js) - Google Analytics