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

四川省建设厅官方网站电话大都会下载安装

四川省建设厅官方网站电话,大都会下载安装,定西网站建设公司,mysql做镜像网站事务是指符合ACID特性的操作就是事务,在同一个数据库中,如果要分别对表A和表B进行插入和删除操作,如果其中一个操作执行失败,可以对当前数据库进行回滚,使其回滚到执行操作前的状态,但是现有的系统架构都是…

        事务是指符合ACID特性的操作就是事务,在同一个数据库中,如果要分别对表A和表B进行插入和删除操作,如果其中一个操作执行失败,可以对当前数据库进行回滚,使其回滚到执行操作前的状态,但是现有的系统架构都是基于微服务的,不同服务和操作设计不同的数据库和表,如果插入操作使用的是数据库A,删除操作使用的是数据库B,那么如果想要二者符合事务的特性,要么全部执行成功,要么全部执行失败,如果失败就要进行回滚,但是不同的数据库又不能同时回滚,因此就需要使用分布式事务。

        分布式事务 是指:一个业务操作需要跨多个独立的系统(服务、数据库、消息队列等)完成,而我们仍然希望这个操作具有像本地事务一样的特性 —— 要么全部成功,要么全部失败(原子性)

常见的分布式事务解决方案有:

1. 2PC(Two Phase Commit)(两阶段提交)

2PC是一种最传统的分布式事务协议,用于确保多个数据库、系统之间在事务上达成“一致性或回滚”,它是很多数据库和中间件(如XA和JTA)支持的底层协议。

工作流程涉及一个协调者+多个参与者

1️⃣ 预提交阶段(Prepare Phase)

- 协调者向所有参与者发送“准备提交事务吗?”请求。

- 每个参与者执行本地操作,但不提交,锁住资源。

- 每个参与者回复“准备好了(Yes)”或“失败(No)”。

2️⃣ 提交阶段(Commit Phase)

- 如果所有参与者都回复 Yes,协调者广播 “正式提交”;

→ 所有参与者提交事务,释放资源。

- 如果有任一 No,协调者广播 “回滚”;

→ 所有参与者回滚之前的操作。

两阶段提交通过先让所有参与者先在本地进行执行,但不提交,确保所有参与者执行成功再提交,因此其一致性强,适用于对一致性要求极高的常见,但是缺点是所有参与者在预提交阶段不会进行提交而是锁住资源,会阻塞数据库,并且如果协调者发生“宕机”,会导致所有参与者卡死在等待阶段。

2. TCC(Try-Confirm-Cancel)

        TCC 是一种由业务开发者控制的分布式事务模式,强调“预处理 → 确认 → 回滚”的逻辑拆解。

每个参与系统都实现三套接口:

  • Try: 预留资源(比如冻结库存)
  • Confirm: 真正提交(比如扣减库存)
  • Cancel: 失败回滚(比如解冻库存)

        其工作流程不涉及到协调者,而是先让所有参与者进行预处理,执行资源预留,如果所有的参与者都 Try 成功,则进行 Confirm ,否则则进行回滚。

1️⃣ Try 阶段:

- 各参与者尝试执行资源预留,不真正变更资源;

- 保证幂等、挂起(冻结)状态。

2️⃣ Confirm 阶段:

- 所有参与者都 Try 成功后,执行 Confirm,正式提交业务操作;

- 幂等、不可逆。

3️⃣ Cancel 阶段:

- 如果任意参与者 Try 失败,执行 Cancel 补偿;

- 清理预留资源(如解冻、释放)。

3. 事务消息(如RocketMQ事务消息)

        通过引入消息中间件的事务消息机制,将发送消息与本地事务进行绑定,来确保分布式事务的正确执行。

工作流程:

1️⃣ 发送“半消息”(Prepared Message):

- 不立刻投递,标记为暂挂状态。

2️⃣ 执行本地事务:

- 如扣款、更新数据库;

- 返回结果:成功 / 失败。

3️⃣ 通知 MQ 提交或回滚:

- 如果本地事务成功 → MQ 正式投递消息;

- 如果失败 → MQ 丢弃半消息。

4️⃣ 宕机或未知状态:

- MQ 会反查发送方:本地事务执行成功没?(checkTransaction)

        值得注意的是,如果本地事务执行成功,消费者会消费到投递的消息,但是如果该消息执行失败,不会导致上游已提交的状态进行回滚,因为该操作的正确有效执行是下游业务需要保证的,不属于上游业务需要考虑的范畴,事务消息只是确保如果本地事务执行失败,则下游业务就不会获取到该条业务消息,只有执行成功的时候才能获取该条业务消息,只有投递的消息是否执行成功,是下游方需要考虑的。

http://www.dtcms.com/wzjs/570675.html

相关文章:

  • 网站建设教程纯正苏州久远网络企业微信app下载安装官方版
  • 滨海哪家专业做网站做ppt一般在什么网站好
  • 探测器 东莞网站建设白酒招商网站大全
  • 网站推广好做吗如何做网站的关键词
  • 做汽车团购网站app开发技术路线
  • 移动医护网站建设利弊红豆影视传媒有限公司
  • 郴州市网站建设科技免费申请地图定位
  • 做网站用商标吗wordpress widget修改
  • 163k地方门户网站系统奉化网络推广
  • 南宁大型网站开发自己做的网站能备案吗
  • c 做网站后台edd次元的避风港网站代理
  • 做电影网站怎么接广告有域名怎么建网站南宁
  • 静态网站模板下载wordpress最好cms
  • 网站logo的颜色与网页的颜色张雪峰谈建筑学前景
  • 做任务赚话费的网站wordpress页面无法显示
  • 做网站怎样建立服务器网站建设项目分期
  • 徽州网站建设ps怎么做网站分隔线
  • 响应式网站 html重庆软件制作
  • 京东网站建设案例云伙伴小程序开发公司
  • 给人做网站赚钱吗怎么查看网站的dns
  • 什么网站没人做做网站 贴吧
  • 怎么做好网站开发 设计Wordpress评论emoji
  • .net做网站用什么框架沈阳网上注册公司流程
  • 多语言网站seo免费购物网站
  • wap手机网站分享代码图像处理专业网站
  • 漯河网站优化网页视频下载方法手机
  • 国外做网站用的程序想学做网站 应该学
  • 北京网站建设营销网站维护细则
  • 闸北做网站公司wordpress 同步预览
  • 怎么当网站站长开发企业网关