上一篇内容:Seata分布式事务(二)搭建一个本地事务环境
Seata分TC、TM和RM三个角色,TC(Server端)为单独服务端部署,TM和RM(Client端)由业务系统集成。Server端存储模式(store.mode)现有file、db、redis三种(后续将引入raft,mongodb),file模式无需改动,直接启动即可,本文主要采用db的方式。
也可以参考官方教程:https://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html
官方教程也有不完善的地方,请留意
一、下载Seata服务端代码以及环境代码
-
浏览官网下载地址
下载地址:https://github.com/seata/seata/releases
打开下载地址可以看到最新版本为v1.4.2,为了追求稳定性,选择v1.4.1版本
-
下载服务端程序以及配置文件
启动包代码:seata-server-1.4.1.tar.gz源码包:Source code(zip)
大部分配置文件,以及各种数据库初始化脚本都在这个包中
二、在Nacos创建一个seata专用的命名空间
-
创建seata专用命名空间(推荐)
-
给把Seata命名空间配置权限给指定的用户(可选)
-
登录给Seata配置权限的用户(可选)
登录后可以看到,多了一个seata_dev的命名空间,但是里边什么东西也没有
-
初始化Seata配置文件到Nacos配置中(必须,特别重要,大多数的教程都没有写)
4.1 解压下载的源码包文件,并找到下面的两个文件
\seata-1.4.1\script\config-center\config.txt
\seata-1.4.1\script\config-center\nacos\nacos-config.sh
4.2 把config.txt文件复制到linux服务器上你喜欢的一个目录下
4.3 在这个目录下创建一个nacos文件夹
mkdir nacos
4.4 把nacos-config.sh复制到刚才创建的nacos目录下
一定要保证nacos-config.sh在config.txt所在文件夹下的任意一个文件夹内,例如一下格式
/home/config.txt
/home/nacos/nacos-config.sh
至于为啥这样做,自己看脚本吧,脚本中写的很明白
4.5 进入到nacos目录中
cd ./nacos
4.6 给nacos-config.sh添加执行权限
chmod +x ./nacos-config.sh
4.7 执行初始化脚本
sh ./nacos-config.sh -h 118.89.120.205 -p 8848 -g SEATA_GROUP -t 7a4cb2ba-9f0d-4add-b953-76c4572b9144 -u zhaojiyuan -w y21…
加粗的需要替换为自己的参数
参数解释
-h:nacos所在的ip或者域名
-t:刚才创建的seata_dev命名空间id
-u:拥有seata_dev命名空间权限的用户名
-w:拥有seata_dev命名空间权限的用户密码
其他的不解释了,需要了解的看官网信息
执行效果如下
4.8 登录到nacos查看执行结果
可以看到很多配置文件,这些都是seata需要的
三、修改Nacos配置中的的Seata配置
-
在nacos中找到配置文件对应的命名空间,然后搜索需要修改Data Id,注意搜索时候加*号可以进行模糊搜索,点击编辑进行修改,修改完成点击发布。如下图
-
需要修改一下配置(以下为oracle配置,用户名密码请根据自己的自行修改,MySQL配置也略同)
store.mode=db
store.db.dbType=oracle
store.db.driverClassName=oracle.jdbc.driver.OracleDriver
store.db.url=jdbc:oracle:thin:@192.168.0.199:1521:zhaojiyuan
store.db.user=seatademo
store.db.password=seatademo
四、安装并配置Seata服务端
因为本文主要演示Seata已db方式已经,所以不需要修改file.conf
-
复制seata启动包并解压
tar -zxvf ./seata-server-1.4.1.tar.gz
-
创建全局事务会话信息表
从源码包中找到seata-1.4.1\script\server\db文件夹,根据自己数据库类型选择要执行的文件,创建全局事务会话信息表,因为我用的oracle,因此我使用oracle.sql文件
-
修改注册中心和配置中心
启动包: seata–>conf–>registry.conf,我的注册中心和配置中心都使用的nacos,其他注册中心和配置中心需要自行调查
注册中心配置参考如下:
配置中心参考配置如下:
五、启动seata服务
进入到seata的bin目录下,执行以下脚本启动
./seata-server.sh