使用springcloud+nacos+seata搭建分布式项目

前言:近期在使用seata做分布式项目的搭建,分享一篇搭建的过程
至于seata是什么?有什么用?请点击:分布式事物及seata介绍

springcloud-nacos-seata

分布式事务组件seata的使用案例,demo内采用:AT模式,集成nacos、springboot、springcloud、mybatis-plus,数据库采用mysql
案例使用的框架版本:

  • spring-cloud-alibaba-seata 2.1.0.RELEASE
  • spring-cloud-starter-alibaba-nacos-discovery 0.2.1.RELEASE
  • springboot 2.0.6.RELEASE
  • springcloud Finchley.RELEASE

Nacos-server

demo使用版本为nacos-server-1.1.3,采用本地单机部署方式

  • 下载地址:https://github.com/alibaba/nacos/releases

下载好后,解压文件,进入文件bin目录下,执行startup文件启动(Windows双击startup.cmd运行文件)
启动成功后可以使用:http://127.0.0.1:8848/nacos/index.html,访问nanos的控制管理台
登录使用默认帐号与密码均为:nacos

  • 更多Nacos使用教程:https://nacos.io/zh-cn/docs/quick-start.html

Seata-server

seata服务端,是一个独立运行的进程,下载地址: https://github.com/seata/seata/releases

  • 本demo版本采用0.8.0,单机本地部署
Seata-server-registry文件配置

 seata下载好后,接下来我们对seata的配置文件进行配置

  • 打开seata文件目录下的conf/registry.conf
  • 修改使用nacos作为注册中心,并且配置下面的nacos的地址为本机(默认使用nacos默认端口号8848,如果你有修改nacos服务的端口号,那么可以将端口号加上去)
    在这里插入图片描述

接下来把文件内容往下翻,找到config的配置
此处配置代表我们seata-server所使用的配置详情,我们这里等会会将配置都写到nacos上面去(nacos具有配置中心的功能)。所以类型选nacos,地址配置也同上
在这里插入图片描述
registry.cof文件配置完毕

Seata-server-config文件配置

接下来我们将配置seata-server的一些运行配置
打开conf/nacos-config.txt文件,该文件为配置模版文件,我们在该文件内进行配置,等会使用自带的sh脚本将文件内的内容注册到nacos上去
该文件,初学者只需要关注service.vgroup_mapping.xxxxxxx属性,该属性用于指定seata的事物分组,必须与我们自己服务application配置文件内spring.cloud.alibaba.seata.tx-service-group的值相同。
在这里插入图片描述

关于该属性的作用:

 该属性用于分组seata的资源逻辑,类似于服务实例。程序会通过该值确定TC的集群名称,拿到集群名称程序通过一定的前后缀+集群名称去构造服务名,各配置中心的服务名实现不同。拿到服务名去相应的注册中心去拉取相应服务名的服务列表,获得后端真实的TC服务列表。
 这样设计的好处是,事务分组可以作为资源的逻辑隔离单位,当发生故障时可以快速failover。
 关联事物的服务你可以配到同一个组下,但是就算你不配到同一组,也依旧可以回滚

注册配上nacos

刚才我们配置的nacos-config.txt文件只是一个模版,我们现在需要将里面的配置导入到nacos上去

cd conf
sh nacos-config.sh nacos地址 #例:sh nacos-config.sh 127.0.0.1

这里使用的是一个sh脚本文件进行注册,如果是Windows用户,可以使用git的命令窗口(Git Bash Here)进行执行该sh脚本
导入成功后,在我们可以在nacos的web控制查看到注册好的配置
在这里插入图片描述

启动seata-server

bin目录下的seata-server即为启动文件

客户端配置

seata服务端配置好了,下面需要配置客户端
项目示例完整代码地址:91zc
demo使用的SQL在README.md文件内
注意:@GlobalTransactional注解为开启分布式事物的注解
注意点:
还是需要注意分组的配置,需要和我们之前在服务端内配置的分组对得上
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值