补偿事务基本概念

news/2024/12/23 1:30:47/

ACID 即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)

  • 原子性:整个事务中的所有操作,要么全部完成,要么全部失败,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
  • 一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
  • 隔离性:两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时中间某一时刻的数据。两个事务不会发生交互。
  • 持久性:在事务完成以后,该事务对数据库所做的更改便持久地保存在数据库之中,并不会被回滚。

CAP 理论——在分布式的服务架构中,一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)

BASE

  • Basic Availability:基本可用。这意味着,系统可以出现暂时不可用的状态,而后面会快速恢复。
  • Soft-state:软状态。它是我们前面的“有状态”和“无状态”的服务的一种中间状态。也就是说,为了提高性能,我们可以让服务暂时保存一些状态或数据,这些状态和数据不是强一致性的。
  • Eventual Consistency:最终一致性,系统在一个短暂的时间段内是不一致的,但最终整个系统看到的数据是一致的。

业务补偿主要做两件事。

  • 努力地把一个业务流程执行完成。
  • 如果执行不下去,需要启动补偿机制,回滚业务流程。

事务补偿机制TCC(Try、Confirm、Cancel),是由2PC(两阶段提交)演变而来在业务层面去解决一致性问题的一种方案。其精髓在于定于业务执行逻辑的时候,同时实现一个抵消(补偿)正向逻辑的cancel操作,以便在异常情况下对原有操作进行回滚。其主要操作如下:

  • Try操作做业务检查及资源预留--一般用户框架对外暴露服务
  • Confirm做业务确认操作--真正执行的逻辑操作,一般认为Try成功Confirm一定成功
  • Cancel实现一个与Try相反的操作既回滚操作--TCC的精髓,为业务操作定义一个补偿的操作 (对于不了解TCC的同学可以参考下,了解大致背景后再看晧哥的文章会有更深的体会。基本可以当做TCC的最佳实践去读。)

http://www.ppmy.cn/news/581437.html

相关文章

点云配准综述一篇综述《A comprehensive survey on point cloud registration》(翻译)

参照了 2021最新关于点云配准的全面综述 - 知乎,并且加了些自己翻译,全篇的内容可能稍有删减。主要作为个人笔记,阅读了几篇综述,发现这篇是质量较好的,值得花时间细读。 文章分类 文章将配准方法分为了同源配准和不…

超详细!完整版!基于spring对外开放接口的签名认证方案(拦截器方式)

文章目录 1、场景2、接口防御措施3、签名认证逻辑4、签名算法规则5、代码示例1、sign工具类2、定义拦截器3、生成accessKey、secretKey 工具类4、signInterceptor类5、SignInterceptor 获取body里参数后,接口的controller会获取不到body的参数了,会报错 …

Linux系统编程(终端和进程的关系)

文章目录 前言一、终端和控制台二、TTY和PTY三、终端的类型四、Gnome Terminal伪终端总结 前言 本篇文章带大家学习终端和进程的关系,终端相信大家都听过,那么真的理解终端是什么吗?应该有很多同学对于终端只是有一个模糊的概念。那么这篇文…

3、数仓之采集工具MaxWell(MaxWell简介、MaxWell原理、MaxWell部署、MaxWell使用)

1、Maxw简介 1.1 MaxWell概述 Maxwell 是由美国Zendesk公司开源,用Java编写的MySQL变更数据抓取软件。它会实时监控Mysql数据库的数据变更操作(包括insert、update、delete),并将变更数据以 JSON 格式发送给 Kafka、Kinesi等流数…

AMEYA360报道:智能燃气表市场正快速发展

燃气表是计量燃气能源的重要器具,智能燃气表是在燃气基表上加入智能模块,可实现计量数据传输、远程控制等功能的特殊燃气表。它采用物联网技术,将燃气表的测量数据传输到相应的控制中心,从而使燃气供应更加安全、高效、智能化。 国…

【正点原子STM32连载】第四十章 红外遥控实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id609294757420 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html# 第四…

Java-定时任务

文章目录 补充:cron表达式基本知识方式一:使用sleep方法方式二:JDK Timer和TimerTask方式三:JDK ScheduledExecutorService方式四: Spring Task 中 的 Scheduler方法五、Quartz框架方式六:XXL-JOB将xxl-job…

打印机卡纸后不能用

打印机卡纸复原后,不能用,有可能是打印机的驱动掉了,不能响应打印机了。, 点击控制面板-》硬件和声音-》设备和打印机, 删除当前型号,再次插上打印机,就可以看到当前打印机,设置为…