阿里的分布式事物gts目前是收费的,具体收费规则和使用文档参见:https://help.aliyun.com/document_detail/69394.html
使用步骤,首先需要去开通阿里的分布式事物gts,登录阿里云的管理控制台:https://txc.console.aliyun.com/app/index.htm
点击创建事物分组
填上自己的事物分组,创建成功后会生成你的分组名称,例如 mygts.1108003305224791.SH
阿里gts所需的pom.xml
com.taobao.txc
txc-client
2.0.72
system
${basedir}/src/main/java/lib/txc-client-2.0.72.jar
org.springframework
spring-context
5.0.9.RELEASE
com.alibaba.dauth
sdk-client
1.2.3
cglib
cglib
3.1
io.netty
netty-all
4.1.0.Final
com.taobao.middleware
logger.api
0.1.5
com.taobao.diamond
diamond-client
edas-3.7.3
ch.qos.logback
logback-core
1.1.7
这里需要阿里的gtx的jar包,https://download.csdn.net/download/huqiankunlol/11045438
然后我们需要配置 gtxconfig
@Configuration
public class GTXConfig {
//定义声明式事务,要想让事务annotation感知的话,要在这里定义一下
@Bean(name = "txcScanner")
@ConfigurationProperties(prefix="aluser")
public TxcTransactionScaner txcTransactionScaner()
{
//xxxx填写txc的逻辑组名
return new TxcTransactionScaner("xxxx");
}
}
这里还需要设置你的访问密钥和私钥,在你的阿里云控制台设置,然后配置在你的配置文件中
aluser.accessKey=xxxx
aluser.secretKey=xxxxxxxx
在你的代码中,使用阿里的分布式事物注解 @TxcTransaction
@Autowired
AccDAO adao;
@Autowired
AccTwoDAO atdao;
@TxcTransaction
public void transferAccount(int money){
adao.setmoney(money);
acdao.setmoney(money);
}
这里采用的是多数据源,两个dao连接的是不同的数据库,多数据配置参见 https://blog.csdn.net/huqiankunlol/article/details/88550230 ,这里主要配置已经完成,接下来发布到你的ecs服务器测试即可
如果采用springcloub分布式,需要在服务消费者得到 xid ,服务提供者处绑定 xid
@RequestMapping("bumen")
@TxcTransaction(timeout = 1000 * 12)
public String getbumen(String name){
String xid = TxcContext.getCurrentXid();
System.out.println("xid:"+xid);
//调用 Remote 远程服务
String str=bumenRemote.getlistAll(xid);
userinfoMapper.updateMoney();
return "hello 这是是服务调用返回的:"+str;
}
在服务提供者处,绑定xid
@RequestMapping("bumen/getlistAll")
public String getlist(String xid){
try{
TxcContext.bind(xid, null);
System.out.println("xid:"+xid);
bumenMapper.updateMoney();
// System.out.println(1/0);
}finally {
TxcContext.unbind();
}
return "成功";
}
分布式事物阿里官方demo下载地址:http://txc-console.oss-cn-beijing.aliyuncs.com/example/txc-yun-sample.zip?spm=a2c4g.11186623.2.14.79121cbeJqu1yD&file=txc-yun-sample.zip