Docker部署Seata
Docker部署Seata
- 1、准备数据库
- 2、配置文件和镜像文件
- 3、创建容器
- 4、查看nacos服务管理列表
- 5、查看seata控制台
- Transaction Coordinator 事务协调者:维护【全局】和【分支】事务的状态,协调全局事务提交或回滚
- Transaction Manager 事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务
- Resource Manager 资源管理器:管理分支事务,向TC注册分支事务和报告分支事务的状态
1、准备数据库
CREATE DATABASE IF NOT EXISTS `seata`;
USE `seata`;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_status_gmt_modified` (`status` , `gmt_modified`),KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;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 = utf8mb4;CREATE TABLE IF NOT EXISTS `lock_table`
(`row_key` VARCHAR(128) NOT NULL,`xid` VARCHAR(128),`transaction_id` BIGINT,`branch_id` BIGINT NOT NULL,`resource_id` VARCHAR(256),`table_name` VARCHAR(32),`pk` VARCHAR(36),`status` TINYINT NOT NULL DEFAULT '0' COMMENT '0:locked ,1:rollbacking',`gmt_create` DATETIME,`gmt_modified` DATETIME,PRIMARY KEY (`row_key`),KEY `idx_status` (`status`),KEY `idx_branch_id` (`branch_id`),KEY `idx_xid_and_branch_id` (`xid` , `branch_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;CREATE TABLE IF NOT EXISTS `distributed_lock`
(`lock_key` CHAR(20) NOT NULL,`lock_value` VARCHAR(20) NOT NULL,`expire` BIGINT,primary key (`lock_key`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('AsyncCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryRollbacking', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('TxTimeoutCheck', ' ', 0);
- 查看某个容器处于哪个网络?👇
docker inspect -f '{{ .HostConfig.NetworkMode }}' container-id
docker inspect container-id
- 把某个容器加入某个网络?👇
docker network connect NETWORK CONTAINER
2、配置文件和镜像文件
通过网盘分享的文件:seata
链接: https://pan.baidu.com/s/1Fsv69eh4jSOQ1K2s4d26Xw?pwd=8888 提取码: 8888
要修改application.yml中的nacos信息和mysql信息
seata-1.5.2.tar是镜像压缩包
docker pull seataio/seata-server:1.5.2
docker load -i seata-1.5.2.tar
3、创建容器
docker run --name seata \
-p 8099:8099 \
-p 7099:7099 \
-e SEATA_IP=192.168.2.128 \
-v ./seata:/seata-server/resources \
--privileged=true \
--network mall-net \
-d \
seataio/seata-server:1.5.2
4、查看nacos服务管理列表
5、查看seata控制台
http://192.168.2.128:7099/