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 集群模式部署完毕。欢迎指正!

 

 

 

Seata 1.5.2是一个开源的分布式事务解决方案,而Nacos则是一个开源的动态服务发现、配置管理和服务管理平台。集成Seata 1.5.2与Nacos可以使得我们在应用程序中更方便地使用分布式事务功能,并且能够动态地管理配置和服务。 首先,集成Seata 1.5.2和Nacos需要进行一些准备工作。我们需要在应用程序中引入Seata 1.5.2和Nacos的相关依赖包,并进行相应的配置。在Seata 1.5.2的配置中,我们需要指定Nacos作为注册中心和配置中心。 其次,集成Seata 1.5.2和Nacos需要对应用程序进行适当的修改。在应用程序中,我们需要使用Seata 1.5.2提供的事务管理接口来控制分布式事务的开始、提交和回滚。同时,我们还需要修改数据库连接配置,确保Seata 1.5.2能够正确地拦截和管理数据库操作。 最后,集成Seata 1.5.2和Nacos还需要进行一些额外的配置。我们需要在Nacos中注册Seata 1.5.2提供的事务协调器服务,并将其配置信息与应用程序进行关联。这样,当应用程序启动时,Seata 1.5.2将会自动从Nacos中获取事务协调器的地址,并与其建立连接。 总结而言,集成Seata 1.5.2和Nacos可以使得我们更方便地使用分布式事务功能,并且能够动态地管理配置和服务。通过适当的配置和修改,我们可以在应用程序中使用Seata 1.5.2提供的事务管理接口,并且将事务协调器的地址信息存储在Nacos中,进一步简化了分布式事务的使用和管理。这样的集成方案可以提高应用程序的可靠性和可伸缩性,同时也减轻了开发和维护的工作量。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值