鋒哥原創的分布式事務框架Seata視頻教程:
實戰阿里分布式事務框架Seata視頻教程(無廢話,通俗易懂版)_嗶哩嗶哩_bilibili實戰阿里分布式事務框架Seata視頻教程(無廢話,通俗易懂版)共計10條視頻,包括:1 阿里分布式事務框架Seata簡介、2 分布式事務簡介、3 SpringCloud Alibaba分布式基礎案例搭建等,UP主更多精彩視頻,請關注UP賬號。https://www.bilibili.com/video/BV1Uf4y1579F/seata默認事務支持是file文件存儲,不怎么好,不方便查看和管理;所以我們一般是db存儲;
修改conf下的file.conf配置文件
把mode改成"db",
然后下方mysql配置改成你們對應的配置即可,數據庫要自己先建立,比如我這邊定義是db_seata
還有三個表,global_table,branch_table,lock_table分別是全局事務會話表,分支事務會話表,鎖數據表;
建表語句獲取:https://gitee.com/dhb414/seata/blob/master/script/server/db/mysql.sql#
-- -------------------------------- The script used when storeMode is 'db' --------------------------------
-- the table to store GlobalSession data
CREATE TABLE IF NOT EXISTS `global_table`
(`xid` VARCHAR(128) NOT NULL,`transaction_id` BIGINT,`status` TINYINT NOT NULL,`application_id` VARCHAR(32),`transaction_service_group` VARCHAR(32),`transaction_name` VARCHAR(128),`timeout` INT,`begin_time` BIGINT,`application_data` VARCHAR(2000),`gmt_create` DATETIME,`gmt_modified` DATETIME,PRIMARY KEY (`xid`),KEY `idx_gmt_modified_status` (`gmt_modified`, `status`),KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8;-- the table to store BranchSession data
CREATE TABLE IF NOT EXISTS `branch_table`
(`branch_id` BIGINT NOT NULL,`xid` VARCHAR(128) NOT NULL,`transaction_id` BIGINT,`resource_group_id` VARCHAR(32),`resource_id` VARCHAR(256),`branch_type` VARCHAR(8),`status` TINYINT,`client_id` VARCHAR(64),`application_data` VARCHAR(2000),`gmt_create` DATETIME(6),`gmt_modified` DATETIME(6),PRIMARY KEY (`branch_id`),KEY `idx_xid` (`xid`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8;-- the table to store lock data
CREATE TABLE IF NOT EXISTS `lock_table`
(`row_key` VARCHAR(128) NOT NULL,`xid` VARCHAR(96),`transaction_id` BIGINT,`branch_id` BIGINT NOT NULL,`resource_id` VARCHAR(256),`table_name` VARCHAR(32),`pk` VARCHAR(36),`gmt_create` DATETIME,`gmt_modified` DATETIME,PRIMARY KEY (`row_key`),KEY `idx_branch_id` (`branch_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8;
因為都是臨時數據,最終提交事務會被清理,我們要看數據的話,還是需要服務代碼里打斷點,debug進行捕獲;
下面這個是鋒哥捕獲到的一個數據;