Skip to content

wayshall/onetwo-tcc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

onetwo-tcc

一个简单的tcc事务框架

要求

  • JDK 1.8+
  • Spring 4.0+
  • RocketMQ 3.x +
  • Spring Boot 1.4.x, 1.5.x

maven

当前snapshot版本:0.5.1-SNAPSHOT

若使用snapshot版本,请添加snapshotRepository仓储:

<repository>
     <id>oss</id>
     <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
</repository>   

其它依赖可以直接参考sample项目的pom.xml配置

使用

启用注解

要使用tcc功能,首先要使用 @EnableTCC 注解,激活加载tcc相关组件

@SpringBootApplication
@EnableTCC
public class TccServiceApplication {
	public static void main(String[] args) {
		SpringApplication.run(TccOrderServiceApplication.class, args);
	}
}

tcc事务注解使用

0、使用@TCCService注解标记服务类为Tcc服务类

@Service
@TCCService
public class TccService {
}

1、标记主事务方法:

@Service
@TCCService
public class TccService {
    @TCCTransactional(globalized=true)
    public void tccMain() {
    }
}

2、标记分支事务方法:

@Service
@TCCService
public class BranchTccService {
    @TCCTransactional(globalized=false, confirmMethod="确认方法名称", cancelMethod="取消方法名称")
    public void tccBranch() {
    }
}

**注意 **

  • 分支事务方法不需要加事务注解,tcc框架内部已自动包装了事务

3、confirm和cancel方法签名必须与try方法一致,且在同一个类

	
@Service
@TCCService
public class BranchTccService {
    @TCCTransactional(globalized=false, confirmMethod="confirm", cancelMethod="cancel")
    public void try(Request request) {
    }

    public void confirm(Request request) {
    }

    public void cancel(Request request) {
    }
}

About

一个简单的tcc事务框架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages