如何配置 GTS 接入-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

如何配置 GTS 接入

猫饭先生 2017-10-31 11:12:59 1473
在申请分布式事务成功后,就可以配置 GTS 接入了。

配置 GTS 接入分为两种情况:

单个 DRDS 实例的 GTS 接入
多个 DRDS 实例的 GTS 接入
单个 DRDS 实例的 GTS 接入

单个 DRDS 实例的 GTS 接入,需要在开始分布式事务的地方加上 select last_txc_xid() 语句,之后的使用方式和传统单机数据库事务完全一致。

您既可以采用手工处理事务的提交和回滚,也可以将管理交给 Spring 事务管理器来管理。

手工处理事务的典型 SQL 语句步骤如下:

set autocommit=false //开启事务
select last_txc_xid() //注册一个 GTS 事务
insert/update/delete 等业务 SQL
commit 或者 rollback //全局提交或回滚
set autocommit=true //恢复自动提交
Spring 事务管理器来处理事务的典型代码如下:

@Transactional
public void update(JdbcTemplate jdbcTemplate) {
  //开启一个 GTS 分布式事务
  jdbcTemplate.execute("select last_txc_xid()");
  // insert/update/delete 等业务 SQL
}
多个 DRDS 实例的 GTS 接入

多个 DRDS 实例的 GTS 接入需要在第一个 DRDS 实例中加上 select last_txc_xid() 语句,再将其他 DRDS 实例和第一个实例的 txc-xid 进行关联。

下面以两个 DRDS 实例(datasource1 和 datasource2)的 GTS 接入举例说明,多个实例的接入方法类似。

在 datasource1 上执行 select last_txc_xid (), 接入 GTS,并得到 xid。

在 datasource2 上执行 set txc_xid=xid,其中 xid 为1中获取的 xid。

以上两步就可以把 dataource1、datasource2 放到一个分布式事务里了。

上述 GTS 配置之后,DRDS 的多个分库中的数据会保持强一致,根据您业务代码的配置,要么同时提交,要么同时回滚。
云服务器登录 云服务器设置
分享到
取消 提交回答
全部回答(0)
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

相似问题
最新问题
推荐课程