db+Nacos的方式部署高可用集群模式
环境:
电脑环境:Win10专业版
java : jdk1.8.0
MySQL: 5.7
spring cloud alibaba : 2.2.5.RELEASE
spring boot : 2.3.11.RELEASE
spring cloud : Hoxton.SR8
nacos: 1.4.1
seata: 1.3.0
下载安装:
官方部署指南:https://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html
Seata分TC、TM和RM三个角色,TC(Server端)为单独服务端部署,TM和RM(Client端)由业务系统集成。
1,seata下载地址:https://github.com/seata/seata/releases
2,下载后解压此时如果启动使用的是file的方式启动的
Server端存储模式(store.mode)支持三种:
file:(默认)单机模式,全局事务会话信息内存中读写并持久化本地文件root.data,性能较高(默认)
db :(5.7+)高可用模式,全局事务会话信息通过db共享,相应性能差些
3,打开安装目录下config/file.conf ,修改mode=“db”,修改数据库连接信息(URL\USERNAME\PASSWORD)
4,创建数据库seata_server,新建表:可以去seata提供的资源信息中下载:
资源目录地址:https://github.com/seata/seata/tree/1.3.0/script
- client :存放client端sql脚本 (包含 undo_log表) ,参数配置
- config-center :各个配置中心参数导入脚本,config.txt(包含server和client,原名nacos-config.txt)为通用参数文件
- server : server端数据库脚本 (包含 lock_table、branch_table 与 global_table) 及各个容器配置
使用的是mysql数据库所以只需要使用mysql.sql文件。mysql.sql直达
为了方便可以直接把整个文件下载下来方便后面的使用,下载
下载整个文件后把里面的script文件直接放到seata的安装目录下
5,创建表后如下
6,配置Nacos注册中心 负责事务操作者(微服务)和TC通讯
Seata安装目录下conf文件夹中,对registry.conf文件进行修改,namespace = ""
代表使用默认的命名空间。需要修改注册类型和配置类型以及各自配置中nacos的用户名和密码
7,把config.txt文件(连接直达)复制到本地,并做如下修改。主要修改:store.mode 变量,和数据库连接信息。
注意:
事务分组: 异地机房停电容错机制,需修改如下配置:my_test_tx_group可以自定义,service.vgroupMapping.my_test_tx_group=default,且需要注意default 必须要等于 registry.confi cluster = “default”
有关详细看官方:https://seata.io/zh-cn/docs/user/txgroup/transaction-group-and-ha.html
8,将第7部中的config.txt配置注册到nacos之中。打开seata-1.3.0\script\config-center\nacos,直接点击nacos-config.sh或nacos-config.bat就会自动注册(因为这里nacos是本地(127.0.0.1所以可以直接点击注册就行)).sh需要安装Git
9,打开nacos客户端,查看配置是否注册成功
10,现在就可以启动服务,安装目录下的bin目录点击seata-server.bat
,默认端口8091。
linux下启动:
bin/seata-server.sh -h 127.0.0.1 -p 8091 -m db -n 1 -e test
参数如下:
在注册中心中查看服务是否注册成功