linux安装seata&Docker安装seata
1.wget https://github.com/seata/seata/releases/download/v1.4.2/seata-server-1.4.2.tar.gz2.tar -zxf seata-server-1.4.2.tar.gz3.mv seata /usr/local4.修改file.conf registry.conf5.初始化数据库脚本(从git下载)6.启动./bin/
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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)