Dubbo整合seata实现分布式事务

  • 日期:03-06
  • 点击:(1221)


概述

本文展示了

springboot、dubbo和seata实现基于官方网站代码Demo的分布式事务集成DEMO。操作步骤如下:

1 . seata-服务器端,修改服务器配置

2 .客户端(您自己的项目),并引入配置文件。修改配置文件

3。数据源代理设置

4。创建数据库表

5。启动注册表(ZK),启动服务器,启动客户端(包括订单服务,库存服务)

1。本演示技术选择和版本信息

操作环境

JDK

JDK

1.8

春季启动

1.5

MySQl

5.7

Zookeeper

3.4

1 . 0 . 0

1 . 0 . 0

2 . 6 . 5

2 . 6 . 5

2。DEMO概要

Springboot-base:存储公共调用的基类接口、映射器接口、模型层的类等。mvn安装后,其他三个模块可以调用它。

springboot-dubbo-storage:库存服务;

spring boot-dubo-order:order service;

spring boot-dubo-client:RPC使用者,提供外部接口;

order服务的关键代码如下:

3。创建一个业务数据库

seata_order:一个存储订单的数据库;

seata_storage:存储库存的数据库;

4。seata组件

3,配置注册表,文件. conf和注册表. conf中的内容

3,配置注册表,文件. conf和注册表. conf中的内容

3,配置注册表,文件. conf和注册表. conf中的内容

4。注释标记事务方法。向订单创建方法添加

GlobalTransactional注释。

5。开始测试(注意顺序)

依次启动Seata、springfoot-dubbo-storage、springfoot-dubbo-order、springfoot-dubbo-client后,打开邮差测试。配置测试参数是:

normal:

request address:3335 localhost :/order/create

request method:post

request content(body):

通过我们对单个接口的访问。根据回复的内容,我们在数据库

6中确认货物已成功

扣除购买。测试异常情况

当我们的模拟用户标识为666时,将出现异常

request address:3335 localhost :/order/create

request method:post

request content(body):

此时,我们可以发现在下订单后数据库数据没有改变。扣除的库存和创建的订单被回滚

参考链接

Boot-Dubbo-MyBatisPlus-Seata.html