SpringVortexNotes

Seata 安装部署指南

zjc 于 2026-08-17 发布

下载地址/官网:Apache Seata Download

Seata 用于解决跨服务操作的一致性问题。后续如果订单、库存、邮件这些动作要拆到多个服务里,并要求“要么都成功,要么整体回滚”,再评估 AT、TCC、Saga 或 XA 模式,不要为了引入分布式事务而强行拆业务。

端口和用途

端口 用途
8091 Seata Server 和控制台访问端口

Seata Server 本身也要注册到 Nacos,客户端才能通过服务发现找到它。

Windows 安装部署 Seata

  1. 确认 JDK:
java -version
  1. 下载 seata-server-2.0.0.zip
New-Item -ItemType Directory -Force -Path D:\apps\seata
Invoke-WebRequest `
  -Uri "https://github.com/apache/incubator-seata/releases/download/v2.0.0/seata-server-2.0.0.zip" `
  -OutFile "D:\apps\seata\seata-server-2.0.0.zip"
Expand-Archive `
  -Path "D:\apps\seata\seata-server-2.0.0.zip" `
  -DestinationPath "D:\apps\seata" `
  -Force
  1. 进入解压后的目录,先用 file 模式启动:
Set-Location D:\apps\seata\seata-server-2.0.0
.\bin\seata-server.bat -p 8091 -m file
  1. 验证端口:
Test-NetConnection 127.0.0.1 -Port 8091

浏览器访问:

http://127.0.0.1:8091/

file 模式只适合本机验证,不要用于生产。

Ubuntu 安装部署 Seata

  1. 创建目录并下载:
sudo mkdir -p /opt/seata
cd /opt/seata
sudo curl -fLO https://github.com/apache/incubator-seata/releases/download/v2.0.0/seata-server-2.0.0.zip
sudo apt update
sudo apt install -y unzip
sudo unzip seata-server-2.0.0.zip
sudo chown -R "$USER":"$USER" /opt/seata
  1. 前台启动验证:
cd /opt/seata/seata-server-2.0.0
sh bin/seata-server.sh -p 8091 -m file
  1. 另开终端验证:
curl -I http://127.0.0.1:8091/
ss -lntp | grep 8091
  1. 测试通过后后台运行:
cd /opt/seata/seata-server-2.0.0
nohup sh bin/seata-server.sh -p 8091 -m file > seata-server.log 2>&1 &

macOS 安装部署 Seata

  1. 下载并解压官方包,例如放到 ~/apps/seata

  2. 启动:

cd ~/apps/seata/seata-server-2.0.0
sh bin/seata-server.sh -p 8091 -m file
  1. 验证:
curl -I http://127.0.0.1:8091/

接入 Nacos 和数据库

生产环境不要长期使用 file 模式。修改 conf/application.yml 时重点看三块:

  1. seata.registry:注册中心改成 Nacos。
  2. seata.store:存储模式改成 db
  3. 数据库连接:使用独立账号,不和业务库共用高权限账号。

Seata 的 global_tablebranch_tablelock_table 要提前建好,具体建表语句以当前版本官方文档为准。

生产部署建议

  1. Seata Server 独立部署,不和应用服务抢资源。
  2. 事务日志表要纳入数据库备份和监控。
  3. 先梳理业务边界,能本地事务解决的不要跨服务。
  4. AT 模式要确认每张业务表都有主键。
  5. 全局锁竞争高的场景,考虑 TCC 或业务侧最终一致。
  6. 接入前要设计事务超时、重试和人工兜底流程。

常见问题

客户端注册不上先检查 Nacos 命名空间、分组、集群名是否完全一致。

回滚失败要查 branch_tablelock_table、业务表结构和事务日志,不要只看应用异常。

could not get global lock 说明并发竞争全局锁。先降低同一行热点,或者调整业务拆分方式。