网上看到了很多seata的讲解,就我搜到的内容来看:要么是版本太低,要么是前置条件没有交待清楚,要么是讲解的不清不楚,为了节省同学们学习摸索的时间,所以写了该篇博客。
环境
- Windows11 64位
- jdk8 1.8.0_314
- MySQL 8.0.29
- nacos 2.1.1
- seata 1.5.2
下载
下载地址:https://seata.io/zh-cn/blog/download.html
下载下来之后解压:
主要有三个目录需要注意:bin、conf、lib
- bin:启动脚本所在目录
- conf:配置文件所在目录,在这里配置seata的启动信息
- lib:jar包所在的地方,里面有个jdbc目录,里面有两个不同版本的jar,默认是使用低版本的,如果后续步骤中报数据库驱动相关的错,可以过来把低版本的删掉。
Nacos中配置
第一步:创建命名空间SEATA_GROUP:
创建好的命名空间:
记住这个命名空间名称和ID,后面会反复用到,非常重要。
第二步:修改seata/conf/application.yml文件:
注:上面在application.yml文件中设置nacos配置中心和注册中心,配置中的分组group和命名空间namespace都是第一步中配置的内容,注意一定要保持一致。
具体修改的内容:
#设置nacos配置中心
config:
# support: nacos, consul, apollo, zk, etcd3
type: nacos
nacos:
# nacos ip地址
server-addr: 127.0.0.1:8848
# 命名空间
namespace: 99970600-6f67-43fd-a2a2-4e9795947bf4
# 分组
group: SEATA_GROUP
username: nacos
password: nacos
# 读取Nacos上的配置文件
data-id: seataServer.properties
# 设置nacos注册中心
registry:
# support: nacos, eureka, redis, zk, consul, etcd3, sofa
type: nacos
nacos:
application: seata-server
# nacos ip地址
server-addr: 127.0.0.1:8848
# 分组
group: SEATA_GROUP
# 命名空间
namespace: 99970600-6f67-43fd-a2a2-4e9795947bf4
cluster: default
username: nacos
password: nacos
第三步:在Nacos中添加配置seataServer.properties:
- Data Id:seataServer.properties
- Group:SEATA_GROUP
具体配置信息如下:
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata_config?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root
store.db.password=root
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.distributedLockTable=distributed_lock
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
第四步:导入数据库脚本
创建数据库
导入seata/script/server/db目录下的mysql.sql文件:
启动程序
先启动Nacos,再运行seata:
注:用户名和密码都是seata
打开nacos列表,观察到seata服务注册成功: