小工具知识网

当前位置: 首页 > 行业知识 > seata2.0的linux服务器部署

行业知识

seata2.0的linux服务器部署

2026-11-10 15:58:43 来源:互联网转载

seata的部署

一、部署Seata的tc-server

1.下载

首先���们要下载seata-server包,地址在https://seata.apache.org/zh-cn/unversioned/download/seata-server,无论是在windows还是linux或是mac使用都可以直接下载zip压缩包。

2.解压

在非中文目录解压缩这个zip包,其目录结构如下:

config目录

script目录

3.修改配置

这里我们直接在windows上先修改配置,然后再复制到linux上,修改conf目录下的application.yml 文件:

1、server端配置中心指定,seata.config.type

2、server端注册中心指定,seata.registry.type

修改config/application.yml文件,指定nacos为配置中心、注册中心,并将seata.store.mode屏蔽,后续中配置中心中进行配置。

内容如下:

server:  port: 8091spring:  application:    name: seata-serverlogging:  config: classpath:logback-spring.xml  file:    path: ${log.home:${user.home}/logs/seata}  extend:    logstash-appender:      destination: 127.0.0.1:4560    kafka-appender:      bootstrap-servers: 127.0.0.1:9092      topic: logback_to_logstashconsole:  user:    username: seata    password: seataseata:  config:    # support: nacos, consul, apollo, zk, etcd3    # 读取tc服务端的配置文件的方式,这里是从nacos配置中心读取,这样如果tc是集群,可以共享配置    type: nacos    nacos:    # 配置nacos地址等信息      server-addr: 172.xxx.xxx.xxx:8848      namespace:      group: SEATA_GROUP      username: nacos      password: nacos      context-path:      ##if use MSE Nacos with auth, mutex with username/password attribute      #access-key:      #secret-key:      data-id: seataServer.properties  registry:    # support: nacos, eureka, redis, zk, consul, etcd3, sofa    # tc服务的注册中心类,这里选择nacos,也可以是eureka、zookeeper等    type: nacos    nacos:    # seata tc 服务注册到 nacos的服务名称,可以自定义      application: seata-server      server-addr: 172.xxx.xxx.xxx:8848      group: DEFAULT_GROUP      namespace:      cluster:       username: nacos      password: nacos      context-path:      ##if use MSE Nacos with auth, mutex with username/password attribute      #access-key:      #secret-key:  #store:    # support: file 、 db 、 redis 、 raft   # mode: file  #  server:  #    service-port: 8091 #If not configured, the default is '${server.port} + 1000'  security:    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017    tokenValidityInMilliseconds: 1800000    ignore:      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login,/metadata/v1/**

4.在nacos添加配置

特别注意,为了让tc服务的集群可以共享配置,我们选择了nacos作为统一配置中心。因此服务端配置文件seataServer.properties文件需要在nacos中配好。

格式如下:

配置内容如下:该配置内容模板在 script/config-center/config.txt 中,不配置的内容会自动使用默认值,无需配置所有选项

#事务会话信息存储方式store.mode=db#事务锁信息存储方式store.lock.mode=db#事务回话信息存储方式store.session.mode=db#存储方式为dbstore.db.dbType=mysqlstore.db.driverClassName=com.mysql.jdbc.Driverstore.db.url=jdbc:mysql://172.xxx.xxx.xxx:3306/seata_server?useUnicode=true&rewriteBatchedStatements=truestore.db.user=66666666store.db.password=66666666store.db.minConn=5store.db.maxConn=30store.db.globalTable=global_tablestore.db.branchTable=branch_tablestore.db.distributedLockTable=distributed_lockstore.db.queryLimit=100store.db.lockTable=lock_tablestore.db.maxWait=5000

其中的数据库地址、用户名、密码都需要修改成你自己的数据库信息。

5.创建数据库表

特别注意:tc服务在管理分布式事务时,需要记录事务相关数据到数据库中,你需要提前创建好这些表。

建表语句在文件 script/server/db/mysql.sql 中

这些表主要记录全局事务、分支事务、全局锁信息:

-- -------------------------------- The script used when storeMode is 'db' ---------------------------------- the table to store GlobalSession dataCREATE 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 = InnoDB  DEFAULT CHARSET = utf8mb4;-- the table to store BranchSession dataCREATE 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 = InnoDB  DEFAULT CHARSET = utf8mb4;-- the table to store lock dataCREATE 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` (`xid`)) ENGINE = InnoDB  DEFAULT 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 = InnoDB  DEFAULT 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);

6.启动TC服务

先直接上传整个文件夹就行。

之后进入到我们的bin目录中。执行一下命令为我们的启动脚本增加执行权限。

chmod +x seata-server.sh

然后,运行其中的seata-server.sh即可:

./seata-server.sh

启动成功后,seata-server应该已经注册到nacos注册中心了。

打开浏览器,访问nacos地址:http://172.xxx.xxx.xx:8848/nacos,然后进入服务列表页面,可以看到seata-server的信息:

上一篇:电信服务器崩了怎么修复?

下一篇:轻松上手!客户下载图片的详细步骤指南