TCC简介

TCC

TCC(Try-Confirm/Cancel)是一种分布式事务处理模型,旨在解决分布式系统中的事务一致性问题。

三阶段

  1. Try阶段: 在这个阶段,业务参与者尝试执行事务,并执行相应的业务逻辑。该阶段用于检查事务执行的先决条件,确保所有需要的资源都可用,并预留这些资源。如果在Try阶段发生任何故障,系统将尝试执行Cancel阶段。
  2. Confirm阶段: 如果Try阶段成功完成,系统将执行Confirm阶段。在这个阶段,所有的业务参与者确认事务的执行,将先前预留的资源正式应用到系统中,使事务生效。
  3. Cancel阶段: 如果在Try阶段发生故障,或者业务逻辑判定需要取消事务,系统将执行Cancel阶段。在这个阶段,事务参与者会释放之前预留的资源,回滚事务的执行,确保系统的一致性。

在这里插入图片描述

和2PC区别

执行方式:

  • TCC: TCC是一种乐观并发控制协议。它试图执行一个事务,然后确认执行,最后取消执行。这三个阶段分别是Try、Confirm、和Cancel。
  • 2PC: 2PC是一种悲观并发控制协议。它分为两个阶段:准备阶段和提交阶段。在准备阶段,协调者询问所有参与者是否可以提交,然后在提交阶段进行实际的提交。

原子性:

  • TCC: TCC协议的每个阶段都是业务逻辑的一部分,因此能够提供更细粒度的控制,使得业务逻辑更容易实现原子性。
  • 2PC: 2PC是一个强一致性的协议,要么所有的事务参与者都提交,要么都回滚,以保持全局一致性。

实现难度:

  • TCC: TCC对业务逻辑的要求较高,因为业务逻辑需要被拆分成Try、Confirm和Cancel三个阶段。
  • 2PC: 2PC的实现相对来说更直观,但由于其强一致性的特性,可能会在分布式环境中引入一些性能和可扩展性方面的挑战。

cancel失败了怎么办?

重试: 在Cancel阶段失败后,可以尝试重新执行Cancel操作。这可能是因为在第一次执行时发生了一些临时问题,例如网络故障或者参与者的不可用。重试的次数和频率可以根据具体情况进行调整。

补偿操作: 如果Cancel无法成功执行,系统可能需要引入补偿操作,以确保数据的一致性。补偿操作是一种对已执行的操作进行反向操作的手段,从而将系统恢复到一致的状态。

人工介入: 在某些情况下,可能需要人工介入来解决问题。例如,如果Cancel无法成功执行,系统可能需要通知管理员或相关人员,以便他们能够手动处理问题。

日志和监控: 对于Cancel阶段的失败,系统应该有适当的日志记录和监控机制。这样,即使Cancel失败,系统管理员也能够通过日志了解失败的原因,并且监控系统可以及时发现问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/153289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

007 OpenCV霍夫变换

目录 一、环境 二、霍夫变换原理 三、代码 一、环境 本文使用环境为: Windows10Python 3.9.17opencv-python 4.8.0.74 二、霍夫变换原理 OpenCV中的霍夫变换是一种用于检测图像中直线和圆的算法。它基于图像中像素的分布情况,通过统计像素点之间的…

2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-C

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C 一、竞赛时间 总计:360分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略设置 A-3 流量完整性保护 A-4 …

基于springboot实现智能热度分析和自媒体推送平台系统项目【项目源码】计算机毕业设计

基于springboot实现智能热度分析和自媒体推送平台演示 系统开发平台 在该自媒体分享网站中,Eclipse能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和编…

纯CSS实现炫酷文本时钟

如图所示这是一个纯本文时钟效果,和传统的时钟不一样,没有表盘,也没有完整到每一分钟的数字表示当前时刻。 在这个时钟中,当前时间通过文本显示,显示的文本时间误差为+/- 4分钟,以明亮的颜色突出显示当前时间,而其余字母则较暗。 实际上这是一个实现很复杂的时钟,因为…

EOCR电机保护器的日常维护与保养技巧

EOCR是由施耐德韩国公司生产的电动机保护系列产品,由电子器件和互感器等部件组成,在正常状态下使用都有各自的机械寿命和电气寿命,若操作不当或异常条件下会加速电器元件的老化,缩短保护器的使用寿命,所以电机保护器的正确使用和正…

css 实现文字流光效果

经过调研发现大多滑块验证码中,有一些文字流光效果,因此在这里简单实现一下。 实现主要利用background 渐变背景以及backgorund-clip:text实现。具体代码如下 css部分 .slide {width: 300px;height: 40px;border: 1px solid #ccc;border-radius: 8px;…

提升工作效率,使用AnyTXT Searcher实现远程办公速查公司电脑文件——“cpolar内网穿透”

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况,异地办公或者不在公司,想找…

linux 服务器进程、端口查找,nginx 配置日志查找,lsof 命令详解

一 、根据端口号 查看文件的部署位置 1.1 使用查看端口号对应的进程信息 方式一 : 使用netstat命令 netstat -tuln | grep 端口号-t:显示TCP连接 -u:显示UDP连接 -l:仅显示监听状态的连接 -n:以数字形式显示端口…

如果在手机没有root的情况下完成安卓手机数据恢复

您是否不小心从安卓设备中删除了重要数据? 担心如何取回您的照片、视频和文档? 有时您可能会不小心删除重要数据并使用安卓 root方法取回文件。 许多用户不喜欢根植他们的安卓设备,因为这是一种复杂的方法。 在本指南中,我们将向您…

控制您的音乐、视频等媒体内容

跨多个 Chrome 标签页播放音乐或声音 在计算机上打开 Chrome 。在标签页中播放音乐、视频或其他任何有声内容。您可以停留在该标签页上,也可以转到别处。要控制声音,请在右上角点击“媒体控件”图标 。您可暂停播放、转到下一首歌曲/下一个视频&#xf…

重磅,瑞士药监局 发布 EU GMP附录1《无菌药品生产》官方解读!

近日,瑞士药监局发布了EU GMP附录1《无菌药品生产》(同时也是PIC/S和WHO GMP附录1)的解读文件,该文件侧重于新版EU、PIC/S和WHO GMP附录1的一些最重要的变化,也涵盖了长期以来反复引起问题的方面。反映了检查员对这些主…

SpringBean的配置详解

Bean的基础配置 例如&#xff1a;配置UserDaoImpl由Spring容器负责管理 <beanid"userDao"class"com.xfy.dao.Impl.UserDaoImpl"></bean> 此时存储到Spring容器中的Bean的beanName是userDao&#xff0c;值是UserDaoImpl&#xff0c;可以根据bea…

Ubuntu本地快速搭建web小游戏网站,公网用户远程访问

前言 网&#xff1a;我们通常说的是互联网&#xff1b;站&#xff1a;可以理解成在互联网上的一个房子。把互联网看做一个城市&#xff0c;城市里面的每一个房子就是一个站点&#xff0c;房子里面放着你的资源&#xff0c;那如果有人想要访问你房子里面的东西怎么办&#xff1…

腾讯云轻量数据库试用初体验

腾讯云轻量数据库1核1G开箱测评&#xff0c;轻量数据库服务采用腾讯云自研的新一代云原生数据库TDSQL-C&#xff0c;轻量数据库兼100%兼容MySQL数据库&#xff0c;实现超百万级 QPS 的高吞吐&#xff0c;128TB海量分布式智能存储&#xff0c;虽然轻量数据库为单节点架构&#x…

ESP32 MicroPython AI摄像头应用⑩

ESP32 MicroPython AI摄像头应用⑩ 1、AI摄像头应用2、移动检测&#xff08;LCD显示&#xff09;3、实验内容3、参考代码4、实验结果 1、AI摄像头应用 我们小车MCU支持AI(人工智能)加速&#xff0c;可以用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)…

openCV教程(三)

文章目录 1 车辆统计项目1.1 背景减除1.2 车辆统计2 特征点检测和匹配2.1 harris角点检测2.2 shi-tomasi角点检测2.3 SIFT关键点检测2.4 SURF特征检测2.5 ORB特征检测3 特征匹配3.1 暴力特征匹配3.2 FLANN特征匹配3.3 图像查找3.3.1 单应性矩阵4 模版匹配4.1 模版匹配4.2 匹配多…

【前端学java】java中的Object类(8)

往期回顾&#xff1a; 【前端学java】JAVA开发的依赖安装与环境配置 &#xff08;0&#xff09;【前端学 java】java的基础语法&#xff08;1&#xff09;【前端学java】JAVA中的packge与import&#xff08;2&#xff09;【前端学java】面向对象编程基础-类的使用 &#xff08…

探索人工智能领域——每日30个名词详解【day4】

目录 前言 正文 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x1f4e3;如需转载&#xff0c;请事先与我联系以…

初步设计报告(框架)

前言 &#xff08;简述初步设计报告编制的背景、过程及其它有关情况&#xff09;&#xff08;内容可根据项目的实际建设内容进行选择&#xff09; 编制单位资质证明

BUUCTF [BJDCTF2020]一叶障目 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。来源&#xff1a;https://github.com/BjdsecCA/BJDCTF2020 密文&#xff1a; 下载附件&#xff0c;解压得到一张.png图片。 解题思路&#xff1a; 1、在010 Editor中打开&#x…