分布式事务是分布式系统的关键技术。
在 企业级分布式应用服务中,实现这一技术的就是 TXC。
事务配置
基于 Spring MVC, 在配置文件 中添加事务配置。
1
2
3
4
5
6
<bean class="com.taobao.txc.client.aop.TxcTransactionScaner">
<constructor-arg value="${txc.clientName}" /><!-- 自定义客户端名称 -->
<constructor-arg value="${txc.serverGroup}" /><!-- 预先定义组别 -->
<constructor-arg value="1" />
<constructor-arg value="1" />
</bean>
与 Spring 事务配置不同,TXC 事务配置是进程级别的。
事务使用
TXC 事务依靠 业务层 切面。
需要 TXC 事务控制时,只需在业务层的方法上增加事务注解。
1
@TxcTransaction(timeout = 1000 * 60)
TXC 事务会通过 EDAS 组件 - Eagleeye 关联到业务层方法调用的其他服务之中,既全局回滚。
注意事项
控制层 方法
1
2
不能使用 TXC 注解
主动使用 try - catch 捕获异常
业务 层方法
1
2
3
4
5
使用事务注解
不使用 try - catch
可主动 throw new IllegalAccessError()
不能使用 try - catch,并需要 TXC 事务注解。
打印 TxcContext.getCurrentXid() 辅助排查问题