Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务,它的高可用依赖于注册中心、配置中心和数据库来实现。
基本环境:
- 阿里云服务
- 操作系统CentOS7
- jdk1.8+
- seata1.3.0
- nacos1.1.4
- mysql5.7+
参考学习:
- 官网:https://seata.io/zh-cn/index.html
- 源码:https://github.com/seata/seata
- 官方Demo:https://github.com/seata/seata-samples
安装包:
- 官网地址:https://github.com/seata/seata/release
- 网盘地址:https://pan.baidu.com/s/1ws-dgaTjiw-wkk9qBoB_EQ 提取码:st12
架构图:
Seata Server (TC) 集群搭建
1、安装文件。上传seata1.3.0到云服务器,执行解命令:tar -zxvf seata-server-1.3.0.tar.gz进行解压;复制解压后的文件夹并重命名,采用端口命名方便区分,执行命令:mv seata seata8091;重复上以步骤端口8092。
2、建库建表。seata的db模式需要在数据库创建 global_table
, branch_table
, lock_table三张
表;创建数据库可取名seata_server,点击下载 数据初始脚本,完成数据库初始化。
3、修改存储模式。seata的Server端存储模式(store.mode)现有file、db、redis三种,db模式为高可用模式,全局事务会话信息通过db共享。修改config/file.conf 文件的存储模式mode="db";修改数据库连接信息,连接上一步中创建的数据库。
4、配置Nacos注册中心。将Seata Server注册到Nacos,需要修改conf目录下的registry.conf配制中registry节点type=nacos。其它nacos的ip地址、用户、密码,请根据具体部署的nacos进行配制。nacos的环境搭建请参考nacos部署安装。
5、配置Nacos配置中心。如果你不想将配制信息通过nacos进行统一管理,这一步可以不用操作,直接进行后面的启动运即可。如果想要采用nacos的制中心,那么就按以下步骤操作。(注意:如果配置了seata server使用nacos作为配置中心,则配置信息会从nacos读取,第3步中的file.conf可以不用配置)
- 下载seata源码,里面有全量的配制文件及执行初始脚本。
- 在对应的配制文件seata-develop\script\config-center\config.txt,将第3步修改内容重新修改一遍。
- 执行nacos-config.sh脚本,启动nacos服务将注册信息上传到nacos中,执行命令参考在下载的源码中有说明。
- 在nacos管理台查看seata的配制信息。
6、启动校验。进入seata的bin目录,通过命令启动服务,执行命令:sh seata-server.sh -p 8091 -n 1 ,相关的启动参数说明,请看官网上支持的启动参数。
7、集群启动。上面是进行单台seata的启动,如果需要作集群处理,重复上面的步骤完成配制调整,在启动时执行命令:sh seata-server.sh -p 8092 -n 2 ,多台seata节点只需要更改启动端口,节点ID值。
8、调整内存。在阿里云上部署经常会碰到服务内存不足的现象,需要修改启动文件 seata-server.sh,具体位置如下,根据自己的服务来配制。