本篇作者:陈健斌(funkye)
github: https://github.com/a364176773
gitee: https://gitee.com/itCjb
本篇视频教程:https://www.bilibili.com/video/BV1tz411z7BX
介绍
本篇将介绍,如何通过官网的新人文档,参数说明,博客区等,进行Seata 1.2 的整合,以及使用nacos作为我们的配置中心跟注册中心,mysql作为server高可用db模式的数据库.
以及常见的入门5大难题解析:
1.xid未传递
2.数据源未代理
3.事务分组配置出错导致无法找到tc
4.Global lock acquire failed
5.Could not found global transaction xid
环境配置
mysql: 5.7
nacos: 1.2.1
spring-cloud-alibaba: 2.2.0
seata: 1.2.0
os: windows 10
正文
第一步下载seata服务:
首先访问:https://seata.io/zh-cn/blog/download.html
下载我们需要使用的seata1.2服务
第二步创建Seata高可用的db,以及AT模式所需的undo_log表:
1.在你的参与全局事务的数据库中加入undo_log这张表
-- for AT mode you must to init this sql for you business database. the seata server not need it.
CREATE TABLE IF NOT EXISTS `undo_log`
(
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'increment id',
`branch_id` BIGINT(20) NOT NULL COMMENT 'branch transaction id',
`xid` VARCHAR(100) NOT NULL COMMENT 'global transaction id',
`context` VARCHAR(128) NOT NULL COMMENT 'undo_log context,such as serialization',
`rollback_info` LONGBLOB NOT NULL COMMENT 'rollback info',
`log_status` INT(11) NOT NULL COMMENT '0:normal status,1:defense status',
`log_created` DATETIME NOT NULL COMMENT 'create datetime',
`log_modified` DATETIME NOT NULL COMMENT 'modify datetime',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8 COMMENT ='AT transaction mode