35、SpringCloudAlibaba实战:分布式事务:Seata框架的搭建-7800字匠心出品

框架的搭建

    • 1.搭建 seata-examples 项目
    • 1.1 使用 IDEA 创建 Maven 项目
    • 1.2 添加依赖
    • 1.3 完整的 pom.xml
  • 2.搭建 account-service 项目
    • 2.1 使用 IDEA 创建一个 Maven 项目
    • 2.2 添加依赖
    • 2.3 完整的 pom.xml 文件如下
  • 3.搭建 business-service 项目
    • 3.1 使用 IDEA 创建一个 Maven 项目
    • 3.2 添加依赖
    • 3.3 完整的 pom.xml 文件如下
  • 4.搭建 order-service 项目
    • 4.1 使用 IDEA 创建一个 Maven 项目
    • 4.2 添加依赖
    • 4.3 完整的 pom.xml
  • 5.搭建 storage-service 项目
    • 5.1 使用 IDEA 创建一个 Maven 项目
    • 5.2 添加依赖
    • 5.3 完整的 pom.xml 文件如下
  • 6.完整的项目的案例为

*
在本示例中,我们模拟了一个用户购买货物的场景:

  • StorageService 负责扣减库存数量;
  • OrderService 负责保存订单;
  • AccountService 负责扣减用户账户余额;
  • Business 负责用户下单的整个流程处理;

1.搭建 seata-examples 项目

  • seata-examples 用来控制所有项目的依赖版本号,以及去除公共的依赖 seata。

1.1 使用 IDEA 创建 Maven 项目

*

  • 选择 Maven 项目:
    *
  • 点击 Next,添加以下的信息:
    *
  • Parent:选择 spring-cloud-alibaba-examples
  • Name:seata-examples
  • 其他的信息保持默认即可。然后点击 Finish 即可完成创建

1.2 添加依赖

  • 打开项目的 pom.xml 文件,添加以下的依赖。
<dependencies>
	<!-- 服务注册-->
	<dependency> 
		<groupId>com.alibaba.cloud</groupId> 
		<artifactId>spring-cloud-alibaba-nacos-discovery</artifactId> 
	</dependency>
	<!-- seata-->
	<dependency> 
		<groupId>com.alibaba.cloud</groupId> 
		<artifactId>spring-cloud-starter-alibaba-seata</artifactId> 
	</dependency>
	<!-- web 项目的基础依赖-->
	<dependency> 
		<groupId>org.springframework.boot</groupId> 
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency> 
</dependencies>

1.3 完整的 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
	http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<parent> 
		<artifactId>spring-cloud-alibaba-examples</artifactId> 
		<groupId>com.dqcgm</groupId> 
		<version>1.0</version> 
	</parent>
	<modelVersion>4.0.0</modelVersion>

	<artifactId>seata-examples</artifactId>

	<dependencies>
		<!-- 服务注册-->
		<dependency> 
			<groupId>com.alibaba.cloud</groupId> 
			<artifactId>spring-cloud-alibaba-nacos-discovery</artifactId> 
		</dependency>
		<!-- seata-->
		<dependency> 
			<groupId>com.alibaba.cloud</groupId> 
			<artifactId>spring-cloud-starter-alibaba-sea