分布式事务Seata安装:本地部署、docker部署seata

Seata安装

Seata本地化部署

直接部署:

  1. 在RELEASE页面下载相应版本并解压
  2. 直接启动

在 Linux/Mac 下

$ sh ./bin/seata-server.sh

在 Windows 下

bin\seata-server.bat

高可用部署:

Seata的高可用依赖于注册中心、配置中心和数据库来实现。使用nacos和redis为例

解压seata-server-1.4.2安装包。

1、修改registry.conf

修改conf文件夹中registry.conf的注册中心和配置中心配置

需要修改的参数:

serverAddr: nacos的地址, 端口 可不设置,默认8848

namespace:nacos中的命名空间

dataId:nacos中添加的配置文件名称

registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"
  nacos {
    application = "seata-server"
    serverAddr = "127.0.0.1:8848"
    group = "SEATA_GROUP"
    namespace = "seata"
    cluster = "default"
    username = ""
    password = ""
  }
}
config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"
  nacos {
    serverAddr = "127.0.0.1:8848"
    namespace = "seata"
    group = "SEATA_GROUP"
    username = ""
    password = ""
    dataId = "seataServer.properties"
  }
}
2、Nacos中添加配置文件
  • 新增seata命名空间

进入命名空间管理页面,新增命名空间,命名空间ID建议手写,配置文件中会用到。详细配置信息参考下图所示:

img

  • nacos中添加配置文件

进入配置管理-配置列表,切换到新建的命名空间中,点击新建配置,DataId为seataServer.properties 分组为SEATA_GROUP

img

需要添加到配置中心的以下几个配置(含db与redis,二者选其一 注:redis需seata-server 1.3版本及以上)

service.vgroupMapping.my_tx_group=default
store.mode=redis
-----db-----
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
store.db.user=root
store.db.password=root
----redis----
store.redis.host=127.0.0.1
store.redis.port=6379
store.redis.maxConn=10
store.redis.minConn=1
store.redis.database=0
store.redis.password=123456
store.redis.queryLimit=100
----client----
client.undo.logTable=undo_log
  • db模式需要在数据库创建
  • global_table、branch_table、lock_table表

建表sql资源目录: https://github.com/seata/seata/tree/1.4.0/script/server/db

3、启动
  • windows:bin目录下双击seata-server.bat启动

  • linux:命令行启动 seata-server.sh -h 127.0.0.1 -p 8091

启动参数:

-h: 注册到注册中心的ip

-p: Server rpc 监听端口

-m: 全局事务会话信息存储模式,file、db、redis,优先读取启动参数 (Seata-Server 1.3及以上版本支持redis)

-n: Server node,多个Server时,需区分各自节点,用于生成不同区间的transactionId,以免冲突

-e: 环境配置

Docker部署

拉取1.4.2版本镜像:

docker pull seataio/seata-server:1.4.2

直接部署:

docker run --name seata-server -p 8091:8091 seataio/seata-server:1.4.2

高可用部署:

依赖于注册中心、配置中心和数据库来实现。

存储模式:redis、注册中心:nacos、配置中心:nacos

1、自定义配置文件:

创建registry.conf

registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"
  nacos {
    application = "seata-server"
    serverAddr = "nacos:8848"
    group = "SEATA_GROUP"
    namespace = "SEATA"
    cluster = "default"
    username = ""
    password = ""
  }
}
config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"
  nacos {
    serverAddr = "nacos:8848"
    namespace = "SEATA"
    group = "SEATA_GROUP"
    username = ""
    password = ""
    dataId = "seataServer.properties"
  }
}

修改nacos的地址,而命名空间、分组、配置文件dataId使用默认即可。

上传 registry.conf 到服务器到自定义路径 如 /opt/seata/config

2、nacos中添加配置文件
  • nacos中添加命名 seata
  • 添加配置文件seataServer.properties

使用新建的seata命名空间,分组为SEATA_GROUP。

service.vgroupMapping.my_tx_group=default
store.mode=redis
-----db-----
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
store.db.user=root
store.db.password=root
----redis----
store.redis.host=redis
store.redis.port=6379
store.redis.maxConn=10
store.redis.minConn=1
store.redis.database=0
store.redis.password=root
store.redis.queryLimit=100
----client----
client.undo.logTable=undo_log 

修改redis/db的地址、密码等参数

3、启动seata

自定义配置文件需要通过挂载文件的方式实现,将宿主机上的 registry.conf 和 file.conf 挂载到容器中相应的目录

使用自定义配置文件时必须指定环境变量 SEATA_CONFIG_NAME, 并且值需要以file:开始, 如: file:/root/seata-config/registry

指定seata-server IP 为服务器IP,若服务器外部网络无法穿透服务器访问docker,将seata-server IP指定为服务器IP。该IP用于向注册中心注册时使用, 如nacos等

docker run -d --name seata-server \
        -p 8091:8091 \
		--link nacos:nacos \
		--link redis:redis \
        -e SEATA_CONFIG_NAME=file:/root/seata-config/registry \
		-e SEATA_IP=192.168.127.48 \
        -v /root/seata/config:/root/seata-config  \
        seataio/seata-server:1.4.2

其中 -e 用于配置环境变量, -v 用于挂载宿主机的目录

容器命令行及查看日志
$ docker exec -it seata-server sh
$ docker logs -f seata-server

seata在springboot项目的应用教程见此文章:分布式事务Seata详细使用教程

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值