网上看到了很多seata的讲解,就我搜到的内容来看:要么是版本太低,要么是前置条件没有交待清楚,要么是讲解的不清不楚,为了节省同学们学习摸索的时间,所以写了该篇博客。
环境- Windows11 64位
- jdk8 1.8.0_314
- MySQL 8.0.29
- nacos 2.1.1
- seata 1.5.2
需要提前配置好jdk的环境变量:
下载地址:https://seata.io/zh-cn/blog/download.html
下载下来之后解压:
主要有三个目录需要注意:bin、conf、lib
- bin:启动脚本所在目录
- conf:配置文件所在目录,在这里配置seata的启动信息
-
lib:jar包所在的地方,里面有个jdbc目录,里面有两个不同版本的jar,默认是使用低版本的,如果后续步骤中报数据库驱动相关的错,可以过来把低版本的删掉。
创建好的命名空间:
记住这个命名空间名称和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服务注册成功: