本文主要是介绍Seata之XA 模式的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
系列文章目录
文章目录
- 系列文章目录
- 前言
前言
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。在 Seata 开源之前,Seata 对应的内部版本在阿里经济体内部一直扮演着分布式一致性中间件的角色,帮助经济体平稳的度过历年的双11,对各BU业务进行了有力的支撑。经过多年沉淀与积累,商业化产品先后在阿里云、金融云进行售卖。2019.1 为了打造更加完善的技术生态和普惠技术成果,Seata 正式宣布对外开源,未来 Seata 将以社区共建的形式帮助其技术更加可靠与完备。
Spring Cloud中使用Seata使用 Feign 实现远程调用。
Windows上安装Seata服务http://www.javacui.com/tool/622.html
XA模式,官方说明
http://seata.io/zh-cn/docs/dev/mode/xa-mode.html
官方参考
https://github.com/seata/seata-samples/tree/master/seata-xa
POM引入
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId><exclusions><!--版本较低,1.3.0,因此排除--><exclusion><artifactId>seata-spring-boot-starter</artifactId><groupId>io.seata</groupId></exclusion></exclusions>
</dependency>
<!--seata starter 采用1.4.2版本-->
<dependency><groupId>io.seata</groupId><artifactId>seata-spring-boot-starter</artifactId><version>1.4.2</version>
</dependency>
需要修改application.yml文件,添加一些配置:
seata:data-source-proxy-mode: XAregistry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址# 参考tc服务自己的registry.conf中的配置type: nacosnacos: # tcserver-addr: 192.168.2.22:8848username: nacospassword: nacosnamespace: "" # 命名空间,默认publicgroup: DEFAULT_GROUP # 分组,默认DEFAULT_GROUPapplication: seata-server # tc服务在nacos中的服务名称tx-service-group: seata-demo # 事务组,根据这个获取tc服务的cluster名称service:vgroup-mapping: # 事务组与TC服务cluster的映射关系seata-demo: DEFAULT
买个需要用到分布式事务的模块都要加入该配置
用@GlobalTransactional注解,替换原来Spring的@Transactional事务注解。
注意,只需要在入口模块的方法上,即发起全局事务的入口方法上改即可。
测试地址
http://localhost:8082/order?userId=user202103032042012&commodityCode=100202003032041&count=20&money=200
这篇关于Seata之XA 模式的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!