当前位置: 首页 > news >正文

北京食药局网站年检怎么做网站页面设计说明怎么写

北京食药局网站年检怎么做,网站页面设计说明怎么写,文创产品设计方法,wordpress吃内存cpuSeata 是一款开源的 分布式事务解决方案,由阿里巴巴中间件团队开发并开源。它的名字是 Session Transaction 的缩写,意为“一个会话内的事务”,旨在解决微服务架构下跨服务、跨数据库的数据一致性问题。 简单来说,Seata 的核心目…

Seata 是一款开源的 分布式事务解决方案,由阿里巴巴中间件团队开发并开源。它的名字是 Session + Transaction 的缩写,意为“一个会话内的事务”,旨在解决微服务架构下跨服务、跨数据库的数据一致性问题。

简单来说,Seata 的核心目标就是让分布式事务像本地数据库事务一样简单易用

Seata 解决的核心问题

在单体应用中,数据库事务(ACID)可以保证数据一致性。但在微服务架构中:

  1. 业务被拆分成多个独立服务

  2. 每个服务有自己的独立数据库

  3. 一个业务操作需要调用多个服务,每个服务执行自己的本地事务。

例如:用户下单操作可能涉及:

  • 订单服务:创建订单(本地事务)。

  • 库存服务:扣减库存(本地事务)。

  • 账户服务:扣减余额(本地事务)。

问题: 如何保证这三个服务的本地事务要么全部成功,要么全部失败回滚?这就是分布式事务问题。传统的数据库事务无法跨越多个独立的数据库。

Seata 的工作原理(核心:AT 模式)

Seata 最常用的是 AT (Automatic Transaction) 模式,其核心思想是两阶段提交(2PC)的改进版,通过全局事务协调器 + 本地事务补偿来实现分布式事务。它包含三个关键角色:

  1. Transaction Coordinator (TC - 事务协调器):

    • Seata 的核心服务器组件(独立部署)。

    • 负责全局事务的发起、提交或回滚决策

    • 维护全局事务(XID)和分支事务(Branch ID)的状态。

  2. Transaction Manager (TM - 事务管理器):

    • 集成在发起全局事务的业务服务中(例如上面的订单服务)。

    • 负责定义全局事务的边界(用 @GlobalTransactional 注解标记方法)。

    • 向 TC 注册全局事务发起最终的全局提交或回滚请求

  3. Resource Manager (RM - 资源管理器):

    • 集成在每个操作本地资源的业务服务中(例如订单服务、库存服务、账户服务)。

    • 负责注册分支事务管理本地事务状态向 TC 报告分支事务状态

    • 在 AT 模式下,最关键的是:在执行本地 SQL 时,RM 会自动拦截 SQL,生成执行前后的镜像数据(快照)形成 UNDO LOG(回滚日志),并和业务数据的更新操作在同一个本地事务中提交。这是实现自动补偿的关键。

AT 模式工作流程(简化版)
  1. TM 开启全局事务: TM 向 TC 申请一个全局唯一的 XID

  2. XID 传播: 这个 XID 随着微服务调用链(通过 RPC 上下文)传播到所有相关的微服务(RM)。

  3. RM 注册分支事务 & 执行业务 SQL:

    • 每个 RM 在执行自己的业务 SQL ,向 TC 注册一个分支事务,绑定到当前的 XID

    • RM 拦截业务 SQL: 在执行 SQL 前生成查询数据的前置镜像(Before Image),执行 SQL 后生成后置镜像(After Image)

    • 生成 UNDO LOG: 将业务 SQL、前置镜像、后置镜像等信息作为 UNDO LOG 记录。

    • 本地事务提交: 将业务数据的更新和 UNDO LOG 写入同一个本地事务中提交。此时数据已修改,但对全局事务来说只是“预提交”。

  4. TM 决定全局提交/回滚: 所有分支事务都执行成功后(本地事务都提交了),TM 向 TC 发起全局提交请求。

  5. TC 通知提交: TC 向所有参与该 XID 的 RM 发送异步的提交指令。

  6. RM 清理资源: RM 收到提交指令后,异步删除对应的 UNDO LOG 记录(因为不需要回滚了)。(快速完成)

如果发生失败需要回滚
  1. TM 发起全局回滚: 如果任何一个分支事务失败(本地事务失败或业务异常),TM 会向 TC 发起全局回滚请求。

  2. TC 通知回滚: TC 根据 XID 找到所有已注册的分支事务,向对应的 RM 发送回滚指令。

  3. RM 执行补偿:

    • RM 根据 XID 和 Branch ID 找到对应的 UNDO LOG。

    • 校验脏写: 用 UNDO LOG 中的后置镜像(After Image)与当前业务数据比较。如果一致,说明没有脏写,可以安全回滚;如果不一致,根据配置策略处理(如重试、人工干预)。

    • 生成补偿 SQL: 根据 UNDO LOG 中的前置镜像(Before Image)生成反向的更新 SQL(回滚 SQL)。

    • 执行补偿 SQL: 执行回滚 SQL,将数据恢复到更新前的状态。

    • 提交本地事务: 执行回滚 SQL 后提交本地事务。

    • 清理资源: 删除 UNDO LOG。

  4. TC 完成回滚: TC 收到所有分支回滚成功的报告,将全局事务状态标记为已回滚。

Seata 的主要优点

  1. 对业务侵入性低: AT 模式只需要在全局事务入口添加一个 @GlobalTransactional 注解,业务代码几乎无需改造(与本地事务写法类似)。

  2. 高性能: 大部分情况下,全局提交是异步的、非常快速(只需删除 UNDO LOG)。一阶段本地事务已经提交,释放了数据库锁资源。

  3. 自动补偿: 基于 UNDO LOG 实现自动回滚,开发者无需手动编写反向补偿逻辑(TCC 模式需要)。

  4. 支持多种模式: 除了 AT 模式,还支持 TCC、Saga、XA 等模式,适应不同场景。

  5. 生态支持好: 与 Spring Cloud、Dubbo、gRPC 等主流微服务框架,以及 MySQL、Oracle、PostgreSQL 等常用数据库集成良好。

  6. 高可用: TC 支持集群部署,保证高可用性。

Seata 的主要模式

  1. AT 模式 (Automatic Transaction - 默认/推荐): 如上所述,基于支持本地 ACID 事务的关系型数据库,通过代理 JDBC 数据源,自动生成 UNDO LOG 实现回滚。最常用

  2. TCC 模式 (Try-Confirm-Cancel): 需要开发者手动编写 Try、Confirm、Cancel 三个阶段的业务逻辑。适用于对性能要求极高、或者需要与不支持 ACID 事务的资源(如 Redis)交互的场景。侵入性较高。

  3. Saga 模式: 长事务解决方案。将一个长流程分解成一系列本地事务。每个本地事务都有对应的补偿事务。如果某个本地事务失败,则按相反顺序执行前面已成功事务的补偿事务。适用于业务流程长、参与者多的场景。

  4. XA 模式: 基于数据库原生支持的 XA 协议实现两阶段提交。强一致性最高,但性能最低(持有锁时间长),资源锁定时间长。

典型应用场景

  • 电商下单、支付、扣库存、积分等跨服务操作。

  • 银行转账(跨账户)。

  • 任何涉及多个微服务、多个数据库写操作,且需要保证整体数据一致性的业务场景。

总结

Seata 是一个强大的开源分布式事务中间件,尤其以其 AT 模式的低侵入性、易用性和较好的性能著称。它通过全局事务协调器(TC)事务管理器(TM) 和资源管理器(RM) 协同工作,利用 UNDO LOG 机制实现自动回滚补偿,有效地解决了微服务架构下的数据一致性问题,是构建可靠分布式系统的关键组件之一。

http://www.dtcms.com/a/522315.html

相关文章:

  • 北京网站 百度快照济南住宅网签查询
  • 建设网站遇到问题的解决方案东莞市做网站的最好的是哪家的
  • 网站三网合一什么意思游戏代理
  • 个体工商户网站备案wordpress5.2 php版本
  • 长沙望城建设局网站dedecms模板站
  • 苏州手机网站建设服务潍坊最近最新消息
  • 全广告网站中国十大网络销售公司
  • 宜黄县建设局网站建设银行网上银行网站
  • 上海的建设项目招投标在哪个网站推广广告软件
  • 有深度网站网站建设课程报告
  • 学校网站建设需求分析建盏世家直播
  • 有做网站的吗 优帮云seo入门
  • 网站源码怎么有2023最近爆发的流感叫什么
  • 专业网站建设现状及对策研究safari浏览器下载
  • 关于网站建设毕业答辩怎么说华为弹性云做网站
  • 岳阳网站制作网站编辑怎么做
  • 怎么才算完成一个网站搬瓦工建设wordpress
  • sae 企业网站sem账户托管外包
  • 微信支付 企业网站外贸营销公司
  • 张槎建网站公司wordpress 数字不连续
  • 网站建设实战教程响水做网站
  • 大同网站建设制作百度站长平台申请提交链接
  • 购物网站怎么做SEO管理网站模板下载免费
  • 网站主题下载建设动漫网站的目的
  • 慢SQL的问题如何排查?
  • 开发网站监控平台网络维护公司怎么发展
  • asp网站模板免费下载如何选择深圳网站建设
  • 天津网站设计成功柚米新闻摘抄四年级下册
  • 建设门户网站的基本意义有哪些wordpress登录页
  • 福州企业网站开发做网站目的