Seata TC集群搭建以及集成nacos

一、下载seata服务包,这里通过GitHub下载,本文下载1.1.0版本

https://github.com/seata/seata/releases/download/v1.1.0/seata-server-1.1.0.tar.gz

解压后目录结构如下:

 

二、修改conf下的两个配置文件 ,TC服务分单机和集群模式,默认单机 file类型模式,我们需要配置成集群多节点,和集成nacos,所以修改其两个配置文件。

1.   修改file.conf文件如下,mode 改为 db模式

2. 修改注册中心配置,文件为  registry.conf  ,如下有两个地方需要修改,一个是registry和config

 三、因为要使用到nacos作为配置中心并且使用db的集群模式,那么就不会用到2.1中file.conf中的配置,需要手动把TC服务中的配置初始化到nacos中,那么初始化配置文件从哪里来,参考如下:

1. 从GitHub上面下载一份1.1.0版本的源码,download  Zip包就行

Seata 1.1.0版本

2. 解压后进入  \seata-1.1.0\script\config-center        目录结构如下:

我们使用的nacos,初始化脚本命令 都在nacos目录下,进入nacos目录下 ,运行下面命令即可。

sh nacos-config.sh localhost:8848

我的nacos安装在同一台机器,所以用的localhost, 其他请做修改。

 

四、配置存入配置中心nacos后,进入nacos,修改其中的默认配置,主要是修改 store. 开头的配置项,

比如存储模式:store.mode

数据库连接信息:store.db.url   store.db.user  store.db.password   

对应的信息在上面第二点中都有配置过,请仔细核对。

 

五、创建Seata TC数据库(这一步可以放到之前的任何地方做),数据库名称  seata

DROP TABLE IF EXISTS `branch_table`;
CREATE TABLE `branch_table` (
  `branch_id` bigint(20) NOT NULL,
  `xid` varchar(128) NOT NULL,
  `transaction_id` bigint(20) DEFAULT NULL,
  `resource_group_id` varchar(32) DEFAULT NULL,
  `resource_id` varchar(256) DEFAULT NULL,
  `branch_type` varchar(8) DEFAULT NULL,
  `status` tinyint(4) DEFAULT NULL,
  `client_id` varchar(64) DEFAULT NULL,
  `application_data` varchar(2000) DEFAULT NULL,
  `gmt_create` datetime(6) DEFAULT NULL,
  `gmt_modified` datetime(6) DEFAULT NULL,
  PRIMARY KEY (`branch_id`),
  KEY `idx_xid` (`xid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for global_table
-- ----------------------------
DROP TABLE IF EXISTS `global_table`;
CREATE TABLE `global_table` (
  `xid` varchar(128) NOT NULL,
  `transaction_id` bigint(20) DEFAULT NULL,
  `status` tinyint(4) NOT NULL,
  `application_id` varchar(32) DEFAULT NULL,
  `transaction_service_group` varchar(32) DEFAULT NULL,
  `transaction_name` varchar(128) DEFAULT NULL,
  `timeout` int(11) DEFAULT NULL,
  `begin_time` bigint(20) DEFAULT NULL,
  `application_data` varchar(2000) 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;

-- ----------------------------
-- Table structure for lock_table
-- ----------------------------
DROP TABLE IF EXISTS `lock_table`;
CREATE TABLE `lock_table` (
  `row_key` varchar(128) NOT NULL,
  `xid` varchar(96) DEFAULT NULL,
  `transaction_id` bigint(20) DEFAULT NULL,
  `branch_id` bigint(20) NOT NULL,
  `resource_id` varchar(256) DEFAULT NULL,
  `table_name` varchar(32) DEFAULT NULL,
  `pk` varchar(36) DEFAULT NULL,
  `gmt_create` datetime DEFAULT NULL,
  `gmt_modified` datetime DEFAULT NULL,
  PRIMARY KEY (`row_key`),
  KEY `idx_branch_id` (`branch_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

六、集群启动,进入Linux  seata解压目录下,也就是第一点目录下

1. 启动第一个节点

[root@localhost seata]# nohup sh bin/seata-server.sh -p 18091 -n 1 &

执行 nohup sh bin/seata-server.sh -p 18091 -n 1 & 命令,启动第一个 TC Server 在后台。

-p:Seata TC Server 监听的端口。
-n:Server node。在多个 TC Server 时,需区分各自节点,用于生成不同区间的 transactionId 事务编号,以免冲突

2. 启动第二个节点

 执行 nohup sh bin/seata-server.sh -p 28091 -n 2 & 命令,启动第二个 TC Server 在后台

七、验证集群是否成功

 去nacos控制页面查询服务列表,是否有两个健康节点

 

至此,seata 集群模式部署完毕。欢迎指正!

 

 

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页