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

甘德县公司网站建设工业设计公司如何运营

甘德县公司网站建设,工业设计公司如何运营,具有价值的建网站,学做馒头面包哪个网站好分布式事务的核心其实是维护分布式数据资源(DB、缓存、MQ等)的一致性。 CAP理论 C:一致性;A:可用性;P:分区容错性 CAP不可能同时满足,在分布式系统中P不能放弃(也就是分布…

分布式事务的核心其实是维护分布式数据资源(DB、缓存、MQ等)的一致性。

CAP理论

        C:一致性;A:可用性;P:分区容错性

        CAP不可能同时满足,在分布式系统中P不能放弃(也就是分布式系统部分实例出错的情况下,仍然可以对外提供服务),因此只能选择CP或者AP。

        选择CP:刚性事务,如XA的2PC、3PC;

        选择AP:基于BASE理论实现最终一致性,如TCC、基于MQ、尽最大努力通知;

2PC、3PC是数据库层面,不是业务代码层面,适合单体应用,同时访问多个数据库的情况,但是微服务的大背景下,基本不会允许这种情况的出现。由于效率低,不适合高并发场景。

2PC的优点是简单、易实现,缺点是:阻塞式的占用资源时间过久、协调者单点故障问题、数据不一致问题(部分commit请求丢失)。

3PC在2PC的基础上增加了一个阶段,并且增加了参与者的等待超时时间,但是并没有解决极端情况下数据不一致的问题。

TCC

        Try、Confirm、Cancel;业务代码层面实现分布式事务。对代码的侵入性强,核心思想是针对每个操作都要实现对应的确认和补偿操作。实现复杂、不易维护。

        跟钱打交道的场景,比如电商平台订单系统、支付、交易、转账等场景,大家都会用TCC方案,保证要么所有操作都成功,要么都回滚。

        Try:业务系统做资源检测并锁住资源。比如常见的下单,在try阶段,我们不是真正的减库存,而是把下单的库存给锁定住。

        Confirm:所有的Try操作都成功了,执行Confirm操作,也就是执行具体的业务,然后释放占有的资源。

        Cancel:至少一个Try失败,执行Cancel操作,释放资源。

        注意事项

        1. Try操作、Confirm操作和Cancel操作需要满足幂等性,允许失败重试;通常我们通过事务id或者业务主键ID判重来实现;

        2. Try操作失败了可以Cancel,那么Confirm和Cancel失败了怎么办?

            TCC中会添加失败日志,失败后进行重试,如果重试后仍然失败,就人工介入进行恢复和处理。

Java生态一般使用成熟的现成方案Seata。

TCC以银行转账做示例:

基于MQ的异步通知解决方案

        RocketMQ通过half消息支持分布式事务,Kafka和RabbitMq也都支持此类方案。

        适用于对数据的实时性要求不高的场景,主要用于内部系统的数据最终一致性保证。使用此方案最好可以有check或者对账流程进行兜底。

最大努力通知

        主要用于外部系统的数据一致性保证,因为外部网络环境更加复杂和不可信。比如支付平台和商家等跨网络对接。

        在MQ方案的基础上增加了如下操作:

        业务主动方完成业务操作后,发送MQ消息,通过消息订阅方(内部系统)调用业务被动方(外部系统)的接口发送事务消息。如果失败则根据重试规则进行消息重新投递;

        业务主动方提供查询接口,供业务被动方进行主动查询,恢复丢失的事务消息。

参考资料

分布式事务 (秒懂)_51CTO博客_分布式事务xa

分布式事务-CSDN博客

五种分布式事务解决方案(图文总结) - Hello-Brand - 博客园

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

相关文章:

  • JAVA-Redis上
  • 免费空间 上传网站虚拟主机推荐
  • mysql配置主从同步
  • 基于SpringBoot+Vue+协同过滤算法的在线旅游系统
  • 【高并发服务器:HTTP应用】十六、HttpContext上下文模块 HttpServer服务器模块 服务器测试
  • 河南科兴建设有限公司网站茂名住房证书城乡建设局官方网站
  • MySQL JSON查询与索引
  • claude code 自定义命令
  • NET_CAPABILITY_VALIDATED 检测android外网是否可用
  • Gin使用
  • SpringAI整合deepseek的一个简单入门案例
  • 突破智能体训练效率瓶颈:Tree Training如何通过共享前缀重用实现3.9倍加速?
  • Java面试题及答案整理( 2025年11月更新版,持续更新...)
  • 定制营销型网站公司色目人
  • 网站普查建设背景网站推广建议
  • 做网站永久嘟嘟浏览器
  • PS1模拟器 DuckStation更新最新版整合 下载即玩 附PS1Bios/游戏/金手指 安卓版+电脑版
  • Java复习事务相关 mysql事务隔离级别 spring事务的传播机制 2025年11月9日
  • 做网站公司排行榜洛阳做网站公司电话
  • 如何发布网站站长是什么职位
  • Vue基本路由
  • 基于springboot的作业管理系统设计与实现
  • Tauri开发手记——1.开发环境
  • 天翼云 ECS 弹性云主机的IP地址无法访问,无法访问 ECS 的网站,解决方案(随手记)
  • 名费网站制作视频教程淘宝代运营公司哪家好
  • 【开题答辩全过程】以 基于springboot美食分享网站为例,包含答辩的问题和答案
  • 福永自适应网站建智能建站系统官网
  • 【FPGA+DSP系列】——MATLAB simulink仿真整流电路
  • (* clock_buffer_type=“NONE“ *)
  • 上海网站建设最佳方案本地wordpress 上传到服务器