1.wget https://github.com/seata/seata/releases/download/v1.4.2/seata-server-1.4.2.tar.gz
2.tar -zxf seata-server-1.4.2.tar.gz
3.mv seata /usr/local
4.修改file.conf registry.conf
5.初始化数据库脚本(从git下载)
6.启动
./bin/seata-server.sh &
jdk17会报错,在seata-server.sh文件中去掉CMS垃圾回收器相关配置 并加上–add-opens=java.base/java.lang=ALL-UNNAMED 然后再启动

服务器上启动后,客户端连不上可能是由于注册到nacos地址是本地地址,启动时加上-h:ip

./bin/seata-server.sh -h 121.4.63.94 &

Docker安装seata

docker容器中 /seata-server/resources/README-zh.md内容如下:

# 脚本说明

## [client](https://github.com/apache/incubator-seata/tree/develop/script/client) 

> 存放用于客户端的配置和SQL

- at: AT模式下的 `undo_log` 建表语句
- conf: 客户端的配置文件
- saga: SAGA 模式下所需表的建表语句
- spring: SpringBoot 应用支持的配置文件

## [server](https://github.com/apache/incubator-seata/tree/develop/script/server)

> 存放server侧所需SQL和部署脚本

- db: server 侧的保存模式为 `db` 时所需表的建表语句
- docker-compose: server 侧通过 docker-compose 部署的脚本
- helm: server 侧通过 Helm 部署的脚本
- kubernetes: server 侧通过 Kubernetes 部署的脚本

## [config-center](https://github.com/apache/incubator-seata/tree/develop/script/config-center)

> 用于存放各种配置中心的初始化脚本,执行时都会读取 `config.txt`配置文件,并写入配置中心

- nacos: 用于向 Nacos 中添加配置
- zk: 用于向 Zookeeper 中添加配置,脚本依赖 Zookeeper 的相关脚本,需要手动下载;ZooKeeper相关的配置可以写在 `zk-params.txt` 中,也可以在执行的时候输入
- apollo: 向 Apollo 中添加配置,Apollo 的地址端口等可以写在 `apollo-params.txt`,也可以在执行的时候输入
- etcd3: 用于向 Etcd3 中添加配置
- consul: 用于向 consul 中添加配置

## 打包
./mvnw -Prelease-seata -Dmaven.test.skip=true clean install -U
docker pull apache/seata-server:2.2.0.jre17

如果用到nacos配置中心:
上传配置至Nacos配置中心
通过dataId配置
1.从v1.4.2版本开始,已支持从一个Nacos dataId中获取所有配置信息,你只需要额外添加一个dataId配置项。

首先你需要在nacos新建配置,此处dataId为seataServer.properties,配置内容参考https://github.com/seata/seata/tree/develop/script/config-center 的config.txt并按需修改保存

A:通过脚本上传配置到Nacos
参考https://github.com/seata/seata/tree/develop/script/config-center 的config.txt并修改,之后运行仓库中提供的nacos脚本,将信息提交到nacos控制台,如果有需要更改,可直接通过控制台更改.

eg: sh ${SEATAPATH}/script/config-center/nacos/nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t 5a3c7d6c-f497-4d68-a71a-2e5e3340b3ca -u username -w password

sh nacos-config.sh -h 121.4.63.94 -p 8848 -g SEATA_GROUP -t seata -u nacos -w nacos

B:我是手工建的,用这个脚本放不到dataId: seataServer.properties里

在client如果用到配置中心参考如下配置进行修改,

seata:
  config:
    type: nacos
    nacos:
      server-addr: NACOS服务器ID:8848
      group : "SEATA_GROUP"
      namespace: ""
      dataId: "seataServer.properties"
      username: "nacos"
      password: "nacos"

在数据库中新建seata库,执行脚本https://github.com/apache/incubator-seata/blob/develop/script/server/db/mysql.sql。然后创建一个用户

create user 'seata'@'%' IDENTIFIED by '123456';
grant all privileges on seata.* to 'seata'@'%';
FLUSH PRIVILEGES;

注意:从2.1.0版本说明中有 :[#6332] 分发包中移除 mysql 依赖。也就是从这个版本之后镜像中没有mysql驱动了。
所以需要自己找一个mysql驱动,挂载到libs目录下。如下我的docker compose.yml中所示

services:
  seata-server:
    image: apache/seata-server:2.2.0.jre17
    #如果没有hostname,docker会使用container_name作为主机名    
    #hostname: seata-server
    container_name: seata-server
    volumes:
      - /opt/services/seata/resources/application.yml:/seata-server/resources/application.yml
      - /opt/services/seata/libs/mysql-connector-j-8.0.32.jar:/seata-server/libs/mysql-connector-j-8.0.32.jar
      - /opt/services/seata/logs:/root/logs/seata
    environment:
      TZ: Asia/Shanghai
      #以SEATA_IP作为host注册到注册中心(如nacos),推荐使用宿主机ip:若所有服务均在相同的docker网络中(如sill)则SEATA_IP可不进行特别配置,因为docker网络允许容器间通过容器名直接通信;然而实际部署时,
      #为确保seata服务能够被外部正确访问,并避免潜在的网络问题,通常建议设置SEATA_IP,特别在云服务环境中,应设置宿主机IP,以确保注册到配置中心的是宿主机IP,而非容器内部IP.
      SEATA_IP: 10.0.4.3
      SEATA_PORT: 8091
    ports:
      # 7091为seata的web端登录端口
      - 7091:7091
      - 8091:8091
networks:
  default:
    name: sill

#如果你想将你的seata 服务部署到服务器上,可以在命令中执行seata 所在服务器的公网ip
#SEATA_IP 可选,指定seata-server启动的IP,该IP用于向注册中心注册时使用,如eureka等.

docker run -d --name seata-server -p 8091:8091 -p 7091:7091 -e SEATA_IP=公网ip -e TZ=Asia/Shanghai -v /opt/services/seata/resources/application.yml:/seata-server/resources/application.yml -v /opt/services/seata/logs:/root/logs/seata seata-server:2.2.0.jre17

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐