专业的编程技术博客社区

网站首页 > 博客文章 正文

分布式事务 Seata(分布式事务seata缺点)

baijin 2024-10-08 00:41:34 博客文章 8 ℃ 0 评论

1. 概述

目前,在 Spring Cloud 体系中,我们一般采用两种方式来实现服务的调用:

  • 方式一,使用 Dubbo 发布服务,并使用 Dubbo 调用服务
  • 方式二,使用 Spring MVC 提供 API 接口,并使用 Feign 调用服务

Seata 内置对 Dubbo 和 Feign 这两种方式的集成,提供分布式事务的功能。

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。

2. AT 模式 + Dubbo

具体的,我们以用户购买商品的业务逻辑,来作为具体示例,一共会有三个 Dubbo 服务,分别对应自己的数据库。整体如下图所示:

3. AT 模式 + Feign

Seata 提供了 spring-cloud-starter-alibaba-seata 项目,对 Spring Cloud 进行集成。实现原理是:

  • 服务消费者,使用 Seata 封装的 SeataFeignClient 过滤器,在使用 Feign 发起 HTTP 调用时,将 Seata 全局事务 XID 通过 Header 传递。
  • 服务提供者,使用 Seata 提供的 SpringMVC SeataHandlerInterceptor 拦截器,将 Header 中的 Seata 全局事务 XID 解析出来,设置到 Seata 上下文 中。

我们以用户购买商品的业务逻辑,来作为具体示例,一共会有三个 Spring Cloud 服务,分别对应自己的数据库。整体如下图所示:

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表