1.安装 Seata
《docker部署Seata》
没有docker?
没事,我们还有本地安装
点击此处下载
Source Code是seta服务的源码,一会我们需要用到script/config-center/config.txt文件
解压两个压缩包,然后修改seata-server配置文件,进入conf目录,调整下面的配置文件:
- 1.registry.conf
4.2 初始化seata的nacos配置
在配置nacos之前,我们进行一些必要的修改:
修改script/config-center/config.txt文件中数据库的配置
注意:如果你的数据库版本8.0之上,需要修改driverClassName,修改为:
com.mysql.cj.jdbc.Driver
我们可以看到里面用到了三张数据表:
我们新建数据库seata,同时在seata中 添加以上三张表:
/*
Navicat MySQL Data Transfer
Source Server : local_zx
Source Server Version : 80018
Source Host : localhost:3306
Source Database : seata
Target Server Type : MYSQL
Target Server Version : 80018
File Encoding : 65001
Date: 2022-04-27 22:50:38
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for branch_table
-- ----------------------------
DROP TABLE IF EXISTS `branch_table`;
CREATE TABLE `branch_table` (
`branch_id` bigint(20) NOT NULL,
`xid` varchar(128) COLLATE utf8_bin NOT NULL,
`transaction_id` bigint(20) DEFAULT NULL,
`resource_group_id` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`resource_id` varchar(256) COLLATE utf8_bin DEFAULT NULL,
`lock_key` varchar(128) COLLATE utf8_bin DEFAULT NULL,
`branch_type` varchar(8) COLLATE utf8_bin DEFAULT NULL,
`status` tinyint(4) DEFAULT NULL,
`client_id` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`application_data` varchar(2000) COLLATE utf8_bin DEFAULT NULL,
`gmt_create` datetime DEFAULT NULL,
`gmt_modified` datetime DEFAULT NULL,
PRIMARY KEY (`branch_id`),
KEY `idx_xid` (`xid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Records of branch_table
-- ----------------------------
-- ----------------------------
-- Table structure for global_table
-- ----------------------------
DROP TABLE IF EXISTS `global_table`;
CREATE TABLE `global_table` (
`xid` varchar(128) COLLATE utf8_bin NOT NULL,
`transaction_id` bigint(20) DEFAULT NULL,
`status` tinyint(4) NOT NULL,
`application_id` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`transaction_service_group` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`transaction_name` varchar(128) COLLATE utf8_bin DEFAULT NULL,
`timeout` int(11) DEFAULT NULL,
`begin_time` bigint(20) DEFAULT NULL,
`application_data` varchar(2000) COLLATE utf8_bin DEFAULT NULL,
`gmt_create` datetime DEFAULT NULL,
`gmt_modified` datetime DEFAULT NULL,
PRIMARY KEY (`xid`),
KEY `idx_gmt_modified_status` (`gmt_modified`,`status`),
KEY `idx_transaction_id` (`transaction_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Records of global_table
-- ----------------------------
-- ----------------------------
-- Table structure for lock_table
-- ----------------------------
DROP TABLE IF EXISTS `lock_table`;
CREATE TABLE `lock_table` (
`row_key` varchar(128) COLLATE utf8_bin NOT NULL,
`xid` varchar(96) COLLATE utf8_bin DEFAULT NULL,
`transaction_id` mediumtext COLLATE utf8_bin,
`branch_id` mediumtext COLLATE utf8_bin,
`resource_id` varchar(256) COLLATE utf8_bin DEFAULT NULL,
`table_name` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`pk` varchar(36) COLLATE utf8_bin DEFAULT NULL,
`gmt_create` datetime DEFAULT NULL,
`gmt_modified` datetime DEFAULT NULL,
PRIMARY KEY (`row_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Records of lock_table
-- ----------------------------
下面开始配置nacos
进入到nacos的控制台,按照以下步骤进行操作:
最终效果如下:
同时考虑到启动时会报找不到事务分组,我们还需要在nacos中添加一个配置:
最后我们产生的配置有两个:
4.3 启动seata服务
- windwos下直接双击bin/seata-server.bat
- linux下使用指令:
sh ./bin/seata-server.sh -p 8091 -h 127.0.0.1 -m db
我们到nacos里可以发现服务已经注入进来
至此seata的环境搭建就可以了
相关文章推荐