Seata部署

1、下载seata

wget https://github.com/apache/incubator-seata/releases/download/v1.4.2/seata-server-1.4.2.zip

2、执行服务端SQL

-- -------------------------------- The script used when storeMode is 'db' --------------------------------
-- the table to store GlobalSession data
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 = InnoDB
  DEFAULT CHARSET = utf8mb4;

-- the table to store BranchSession data
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 = InnoDB
  DEFAULT CHARSET = utf8mb4;

-- the table to store lock data
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`)
) 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 ('HandleAllSession', ' ', 0);

3、nacos导入seataServer.properties

#For details about configuration items, see https://seata.io/zh-cn/docs/user/configurations.html
#Transport configuration, for client and server
transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableTmClientBatchSendRequest=false
transport.enableRmClientBatchSendRequest=true
transport.enableTcServerBatchSendResponse=false
transport.rpcRmRequestTimeout=30000
transport.rpcTmRequestTimeout=30000
transport.rpcTcRequestTimeout=30000
transport.threadFactory.bossThreadPrefix=NettyBoss
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler
transport.threadFactory.shareBossWorker=false
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector
transport.threadFactory.clientSelectorThreadSize=1
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread
transport.threadFactory.bossThreadSize=1
transport.threadFactory.workerThreadSize=default
transport.shutdown.wait=3
transport.serialization=seata
transport.compressor=none

#Transaction routing rules configuration, only for the client
service.vgroupMapping.default_tx_group=default
#If you use a registry, you can ignore it
service.default.grouplist=127.0.0.1:8091
service.enableDegrade=false
service.disableGlobalTransaction=false

#Transaction rule configuration, only for the client
client.rm.asyncCommitBufferLimit=10000
client.rm.lock.retryInterval=10
client.rm.lock.retryTimes=30
client.rm.lock.retryPolicyBranchRollbackOnConflict=true
client.rm.reportRetryCount=5
client.rm.tableMetaCheckEnable=false
client.rm.tableMetaCheckerInterval=60000
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.rm.sagaJsonParser=fastjson
client.rm.tccActionInterceptorOrder=-2147482648
client.rm.sqlParserType=druid
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.defaultGlobalTransactionTimeout=60000
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000
client.tm.interceptorOrder=-2147482648
client.undo.dataValidation=true
client.undo.logSerialization=jackson
client.undo.onlyCareUpdateColumns=true
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
client.undo.logTable=undo_log
client.undo.compress.enable=true
client.undo.compress.type=zip
client.undo.compress.threshold=64k
#For TCC transaction mode
tcc.fence.logTableName=tcc_fence_log
tcc.fence.cleanPeriod=1h

#Log rule configuration, for client and server
log.exceptionRate=100

#Transaction storage configuration, only for the server. The file, DB, and redis configuration values are optional.
store.mode=db
store.lock.mode=db
store.session.mode=db

#These configurations are required if the `store mode` is `db`. If `store.mode,store.lock.mode,store.session.mode` are not equal to `db`, you can remove the configuration block.
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=mysql
store.db.password=mysql
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.distributedLockTable=distributed_lock
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000


#Transaction rule configuration, only for the server
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.distributedLockExpireTime=10000
server.session.branchAsyncQueueSize=5000
server.session.enableBranchAsyncRemove=true

#Metrics configuration, only for the server
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898
 

4、修改conf下file.conf

mode = "db"

5、修改conf下registry.conf

registry {
  type = "nacos"
}

config {
  type = "nacos"
}

6、启动seata

nohup ./seata-server.sh >/dev/null 2>&1 &

如需公网访问,命令如下:

nohup ./seata-server.sh -h 公网IP >/dev/null 2>&1 &

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/358382.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

12306 真的很拉跨吗?春运是对它最大的误解!

春节降至,大家都抢到火车票了吗?马上就要迎来春节,是不是都在吐槽 12306 的种种不好,它真的有这么拉跨吗? 其实不然,每到各种节假日,都是对 12306 最大的误解! 特别是春运&#xf…

多个微信号难管理?

很多客户都遇到了这几个问题: 1、公司分配给员工有很多个微信账号,但是管理起来很难? 2、多个微信号要不来回切换登录,要不需要挂在多台手机了? 3、每个号每天都需要发朋友圈,工作量大?有时还…

GP232RL国产USB串口如何兼容FT232RL开发资料

GP232RL是最新加入 ftdi 系列 usb 接口集成电路设备的设备。 232r是一个 usb 到串行 uart 接口,带有可选的时钟发生器输出,以及新的 ftdichip-idTM 安全加密器特性。此外,还提供了异步和同步位崩接口模式。 通过将外部 eeprom、时钟电路和 …

Java API 操作 HDFS

Java API 操作HDFS一般有两种方式: 使用HDFS客户端配置文件自动配置 Java 代码中配置 一 使用HDFS客户端配置 1.1 下载HDFS客户端配置 1.2 创建Maven项目 创建Maven项目,将下载的客户端配置文件 core-site.xml、hdfs-site.xml 放入resources目录下&…

用AI工具一键生成原创文案的方法

一键生成原创文案对于文案工作者来说它是一种高效率创作文案内容的方法。文案工作者知道创作文案是一件消耗精力和时间的事情,遇到没有创作灵感,想要写一篇高质量的文案内容简直难上加难,因此,互联网上出现了一键生成原创文案的方…

冷知识:COS上传文件时可以同步获取文件信息

背景介绍 本文将介绍如何在上传文件到 COS 时同步获取文件信息,如图片的宽高、格式等。 目前,可以通过 COS 上传接口,如 PUT Object、CompleteMultipartUploads 等将文件存储至 COS 存储桶中,我们针对以下三种场景提供上传时同步…

HubSpot社交媒体影响力怎么样?

HubSpot是一家在数字营销和销售领域非常知名的公司,以其全面的营销、销售和客户服务软件而闻名。然而,关于HubSpot在社交媒体上的具体影响力,这是一个动态的情况,因为社交媒体的影响力可能受到多种因素的影响,包括社交…

如何处理QT 代码复制到新机器无法正确打开和编译?

例如你在文件夹 d:\projects 下创建的项目名称为 hello,这时会在 d:\projects 下创建两个文件夹 d:\projects\hello 和 d:\projects\build-hello-Desktop_Qt_6_6_1_MinGW_64_bit-Debug。其中,第二个文件夹保存了编译器等工具软件的路径设置。 第二个文件…

ubuntu 22安装配置并好安全加固后,普通用户一直登录不上

现象 ubuntu 22安装配置并好安全加固后,普通用户一直登录不上 排查报错 查看日志/var/log/auth.log发现报错 Jan 30 15:49:57 aiv-O-E-M sshd[62570]: PAM unable to dlopen(pam_tally2.so): /lib/security/pam_tally2.so: cannot open shared object file: No …

C语言 | 求最大/小值小技巧:fmax、fmin函数

如果你只是因为不想用C语言手写max、min函数,就直接去用iostream中的max、min函数的话,这篇文章可能会有些许帮助。 😇 fmax、fmin函数用于确定两个指定值的较大/较小值。 头文件 math.h(或者cmath)。 定义 double …

【Python笔记-设计模式】单例模式

一、说明 单例是一种创建型设计模式,能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。 (一) 解决问题 维护共享资源(数据库或文件)的访问权限,避免多个实例覆盖同一变量,引发程序崩溃。 …

部署PXE高效批量网络装机

部署PXE高效批量网络装机 因在Cisco3850核心交换机中已开启DHCP 服务,因此不需要在配置DHCP服务。如果您的网络环境中也已有DHCP服务,也不用再配置DHCP服务了,直接部署PXE相关服务即可。 找一台linux系统的服务器,这本次试验用的是…

什么是零知识证明?

Web3 的核心原则之一——透明度,也可能是其最大的缺点之一。没有人希望他们的所有在线活动(从金融交易到个人身份数据)都可供任何人公开查看。为了使区块链能够扩展并变得更容易访问,隐私必须成为首要任务。 零知识证明能够改变我…

Codeforces Round 894 (Div. 3)

Gift Carpet(Problem - A - Codeforces) 题目大意:有一块儿地毯,上面有n行m列的字符,如果从左往右一列一列的读,可以读到“vika”,那么就输出yes,否则输出no。 思路:这…

【RuoYi-Vue-Plus学习】项目初始化时将sql导入数据库出现Finished with error解决方法之一

将sql导入数据库出现Finished with error,文末是最终解决方法。 问题描述:sql导入出现Finished with error 解决方法探索过程: 1)参考链接2和3,在mysql的bin目录下输入以下指令连接数据库 mysql -h localhost -u ro…

第25讲:顺序表专题

1.什么是数据结构 2.顺序表概念及结构 3.顺序表分类 4.实现动态顺序表 1.什么是数据结构 数据结构是计算机存储、组织数据的方式。可以用来完成通讯录项目。 2.顺序表概念及结构 2.1线性表 线性表是n个具有相同特性的数据元素的有限序列 常见的线性表:顺序表…

智能监控系统EasyCVR设备录像无法下载是什么原因?该如何解决?

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流&#…

【React教程】(2) React之JSX入门与列表渲染、条件渲染详细代码示例

目录 JSX环境配置基本语法规则在 JSX 中嵌入 JavaScript 表达式在 JavaScript 表达式中嵌入 JSXJSX 中的节点属性声明子节点JSX 自动阻止注入攻击在 JSX 中使用注释JSX 原理列表循环DOM Elements 列表渲染语法高亮 条件渲染示例1:示例2:示例3&#xff08…

递归方法的理解,什么时候递,什么时候归

简单总结一下递归。递归就是在运行的过程中调用自己。递归需要有一个出口,如果无限递归是没有意义的,而且递归到一定程度,程序就会由于栈内存溢出导致程序报错。 我们先来看段代码:建议大家先思考这个代码在控制台输出的结果是什…

性能测试+Jmeter介绍

文章目录 什么是性能测试?性能测试的目的性能测试分类一般性能测试负载测试压力测试大数据量测试配置测试稳定性测试 性能测试术语虚拟用户并发及并发用户数响应时间每秒事务数吞吐量、吞吐率点击率性能计数器资源利用率 性能测试流程测试计划阶段测试设计阶段测试开发阶段测试…