下载地址/官网:Apache Seata Download
Seata 用于解决跨服务操作的一致性问题。后续如果订单、库存、邮件这些动作要拆到多个服务里,并要求“要么都成功,要么整体回滚”,再评估 AT、TCC、Saga 或 XA 模式,不要为了引入分布式事务而强行拆业务。
端口和用途
| 端口 | 用途 |
|---|---|
| 8091 | Seata Server 和控制台访问端口 |
Seata Server 本身也要注册到 Nacos,客户端才能通过服务发现找到它。
Windows 安装部署 Seata
- 确认 JDK:
java -version
- 下载
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
- 进入解压后的目录,先用 file 模式启动:
Set-Location D:\apps\seata\seata-server-2.0.0
.\bin\seata-server.bat -p 8091 -m file
- 验证端口:
Test-NetConnection 127.0.0.1 -Port 8091
浏览器访问:
http://127.0.0.1:8091/
file 模式只适合本机验证,不要用于生产。
Ubuntu 安装部署 Seata
- 创建目录并下载:
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
- 前台启动验证:
cd /opt/seata/seata-server-2.0.0
sh bin/seata-server.sh -p 8091 -m file
- 另开终端验证:
curl -I http://127.0.0.1:8091/
ss -lntp | grep 8091
- 测试通过后后台运行:
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
-
下载并解压官方包,例如放到
~/apps/seata。 -
启动:
cd ~/apps/seata/seata-server-2.0.0
sh bin/seata-server.sh -p 8091 -m file
- 验证:
curl -I http://127.0.0.1:8091/
接入 Nacos 和数据库
生产环境不要长期使用 file 模式。修改 conf/application.yml 时重点看三块:
seata.registry:注册中心改成 Nacos。seata.store:存储模式改成db。- 数据库连接:使用独立账号,不和业务库共用高权限账号。
Seata 的 global_table、branch_table、lock_table 要提前建好,具体建表语句以当前版本官方文档为准。
生产部署建议
- Seata Server 独立部署,不和应用服务抢资源。
- 事务日志表要纳入数据库备份和监控。
- 先梳理业务边界,能本地事务解决的不要跨服务。
- AT 模式要确认每张业务表都有主键。
- 全局锁竞争高的场景,考虑 TCC 或业务侧最终一致。
- 接入前要设计事务超时、重试和人工兜底流程。
常见问题
客户端注册不上先检查 Nacos 命名空间、分组、集群名是否完全一致。
回滚失败要查 branch_table、lock_table、业务表结构和事务日志,不要只看应用异常。
could not get global lock 说明并发竞争全局锁。先降低同一行热点,或者调整业务拆分方式。