我们都知道现在使用微服务,那么就会出现一种情况,就是一个功能,从 A 服务,到 B 服务,然后到 C 服务,每个服务都可能需要去调取不同的服务,而这个服务之间的调用,而当他们使用三个独立的数据源的时候,那么他们也就只能保证自己每个服务内部的事务,而去全局的一致性,则是没有办法保证的,也就是我们再面试的时候,经常会被问到的分布式事务。,其实分布式事务用一句话概括,那就是一次业务操作,如果横跨多个数据源或者需要跨多个系统进行远程调用的话,就会产生分布式事务问题。,分布式事务其实现在解决方案有很多,比如 TCC方案,XA 方案,本地消息表,可靠消息最终一致性方案,最大努力通知方案等等,但是这种方案实现上肯定都是偏复杂的,而阿里我们都知道他是有一套自己解决分布式事务的方案的,那么大家都知道是什么呢?今天了不起就来和大家看看这个 Seata 一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。,Senta 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。,我们来看看官网的介绍,,Seata官网,图片,突然看到这个图里面的术语的时候,是不是有点懵,我们来看看这个Seata的术语,TC (Transaction Coordinator) – 事务协调者,维护全局和分支事务的状态,驱动全局事务提交或回滚。,TM (Transaction Manager) – 事务管理器,定义全局事务的范围:开始全局事务、提交或回滚全局事务。,RM (Resource Manager) – 资源管理器,管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。,其实如果看上面的图,我们看看这个处理过程,
图片,接下来我们直接来实战试一下这个Seata的实际操作。,我们直接用官网的Demo来学习一下,快速开始,我们挑选一个不是那么新的版本,毕竟都知道,新版本中那可是有很多坑的,一个不留神就踩进去,学习还是稳一手。,
图片,下载完成,直接解压,然后去找到文件目录,,我们直接找到config下的 file.config,,主要就是修改,事务日志存储模式为db+数据库连接信息,我们直接把mode改为db,然后db改为我们自己的数据库地址,
图片,然后我们去把数据库给创建好,建表语句在config下的 readme文件中。,
图片,我们找到 server 的 Mysql 的建表语句,
图片,ok了 建表成功。,还是同样的目录,我们再修改一下 registry.conf 主要是来修改nacos的信息的,因为 Seata 其实推荐的也是 nacos,所以下面的这个 type 我们直接来改成自己的 naocs 就可以了。,直接获取config.txt,config.txt,然后我们修改一下store,
图片,先从git上面下载 nacos-config.sh,然后推送配置到nacos,nacos-config.sh,把 nacos-config.sh 文件放到 config 下,然后执行命令,
sh nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t 5518397c-7ea8-4f55-89ca-dacfc6fdf914 -u nacos -w nacos
,命令的解释如下:,图片,执行这个有个前提,那就是registry.conf中的namespace和命令中的必须保持一样,并且在 nacos中也增加了对应的命名空间,如果你没有仔细的看文档,并且没有对 nacos 中的命名空间做增加的话,那么你就肯定失败,然后在 nacos 中就是看不到自己的配置情况。,
图片,创建完成之后,就会出现这个命名空间的ID,我们直接来随机的,然后复制这个ID 到registry.conf中配置一下就可以了。,大家可以看到上面的图中出现了total-count是98,但是failure-count:1 我们看执行完命令后,失败的是哪个,,这个失败了,但是有人可能会失败四个,其实这四个并不影响这个执行,因为我们可以去 Nacos 中看配置情况,,
图片,因为了不起之季节吧这个 store.redis 的内容给全注释了。所以只有一个没成功。,接下来我们就可以启动seata了。,我们这里先不考虑这个client,因为可以在我们后面使用的时候再去添加这个,直接执行 bin/seata-server.bat 文件,然后看看能启动成功不。,
图片,当我们看到这个 Server started 的时候,我们就知道,我们的 seata 的服务端就启动成功了,到这里我们的 seata 的安装和配置就算是已经完成了。,你学会了么?
文章版权声明
1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/27575.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别