二阶段提交的理解

两阶段提交2PC是分布式事务中最强大的事务类型之一,两段提交就是分两个阶段提交:

  • 第一阶段询问各个事务数据源是否准备好。
  • 第二阶段才真正将数据提交给事务数据源。
    为了保证该事务可以满足ACID,就要引入一个协调者(Cooradinator)。其他的节点被称为参与者(Participant)。协调者负责调度参与者的行为,并最终决定这些参与者是否要把事务进行提交。

处理流程如下:

在这里插入图片描述
阶段一

  • 协调者向所有参与者发送事务内容,询问是否可以提交事务,并等待答复。
  • 各参与者执行事务操作,将 undo 和 redo 信息记入事务日志中(但不提交事务)。
  • 如参与者执行成功,给协调者反馈 yes,否则反馈 no。

阶段二

如果协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚(rollback)消息;否则,
发送提交(commit)消息。两种情况处理如下:

情况1:当所有参与者均反馈 yes,提交事务

  • 协调者向所有参与者发出正式提交事务的请求(即 commit 请求)。
  • 参与者执行 commit 请求,并释放整个事务期间占用的资源。
  • 各参与者向协调者反馈 ack(应答)完成的消息。
  • 协调者收到所有参与者反馈的 ack 消息后,即完成事务提交。

情况2:当有一个参与者反馈 no,回滚事务

  • 协调者向所有参与者发出回滚请求(即 rollback 请求)。
  • 参与者使用阶段 1 中的 undo 信息执行回滚操作,并释放整个事务期间占用的资源。
  • 各参与者向协调者反馈 ack 完成的消息。
  • 协调者收到所有参与者反馈的 ack 消息后,即完成事务。

存在的问题:

  • 性能问题:所有参与者在事务提交阶段处于同步阻塞状态,占用系统资源,容易导致性能瓶颈。
  • 可靠性问题:如果协调者存在单点故障问题,或出现故障,提供者将一直处于锁定状态。
  • 数据一致性问题:在阶段 2 中,如果出现协调者和参与者都挂了的情况,有可能导致数据不一致。

优点:
尽量保证了数据的强一致,适合对数据强一致要求很高的关键领域。(其实也不能100%保证强一致)。

缺点:
实现复杂,牺牲了可用性,对性能影响较大,不适合高并发高性能场景。

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

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

相关文章

如何使用phpStudy在Windows系统部署静态站点并实现无公网IP远程访问

文章目录 使用工具1. 本地搭建web网站1.1 下载phpstudy后解压并安装1.2 打开默认站点,测试1.3 下载静态演示站点1.4 打开站点根目录1.5 复制演示站点到站网根目录1.6 在浏览器中,查看演示效果。 2. 将本地web网站发布到公网2.1 安装cpolar内网穿透2.2 映…

Zookeeper(二)一致性协议2PC,3PC

目录 1.1 2PC协议1.1.1 协议说明1.1.2 优缺点同步阻塞单点问题数据不一致容错性不好 1.2 3PC 协议1.2.1 协议说明1.2.2 优缺点 官网:Apache ZooKeeper 1.1 2PC协议 2PC,是Two-Phase Commit的缩写,即二阶段提交,是计算机网络尤其…

Java实现定时发送邮件(基于Springboot工程)

1、功能概述? 1、在企业中有很多需要定时提醒的任务:如每天下午四点钟给第二天的值班人员发送值班消息?如提前一天给参与第二天会议的人员发送参会消息等。 2、这种定时提醒有很多方式如短信提醒、站内提醒等邮件提醒是其中较为方便且廉价的…

upload-labs·文件上传(靶场攻略)

目录 1.文件上传漏洞 1.1.文件上传漏洞介绍 1.2.文件上传漏洞危害 1.3.文件上传漏洞满足条件 1.4.文件检测流程 1.5.文件上传思路 1.6.web界面存在的风险点 1.7.文件上传实战思路 2.靶场搭建 3.文件上传 3.1.upload-labs第一关 3.2.检测文件类型 3.2.1.基本概念 3…

webconfig-boot分布式项目Web一站式配置

1、前言 最近利用空余时间写了一个项目webconfig-boot 。该项目主要配置了web项目常用的一些配置,如统一参数校验、统一异常捕获、统一日期的处理、常用过滤器、常用注解等。引入依赖接口完成常规的web配置。 这里也是总结了笔者在项目开发中遇到的一些常用的配置…

基于Spring Boot的社区垃圾分类管理平台的设计与实现

摘 要 近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,社区垃圾分类管理平台利用计算机网络实现信息化管理,使整个社区垃圾分类管理的发展和服务水平有显著提升。 本文拟…

LLM流式方案解决方案和客户端解决方案

背景 接上一篇《LLM大模型统一封装接口解决方案》架构确定后,流式方案非常规请求,需要特殊处理。 本解决方案就是针对上一篇中所需要的流式(打字机效果进行编码) 什么是SSE SSE(Server-Sent Events,服务器发…

C++初阶:string类的模拟自实现

目录 1. 引子2. 自实现string类功能模块3. string类功能模块的具体实现3.1 默认成员函数3.2 遍历访问相关成员函数3.3 信息插入相关成员函数3.4 信息删除3.5 信息查找3.6 非成员函数3.7 杂项成员函数 4. 补充知识 1. 引子 通过对string类的初步学习,没有对知识进行较…

MRP(VBA系列):6.SIOP:将PO的信息加入到Net后面

这个比较简单,就是将两个表格的信息组合起来。 Tips:所有代码都是为目前任职公司编写,极大概率不适合其他公司,在这里发布:首先是记录;其次才是分享,望理解! 效果图: 思…

聚合音乐网-播放器网站源码

源码简介 MKOnlineMusicPlayer 是一款全屏的音乐播放器 UI 框架(为避免侵权,已移除所有后端功能)。 前端界面参照 QQ 音乐网页版进行布局,同时采用了流行的响应式设计,无论是在PC端还是在手机端,均能给您…

初识 linux

什么是linux Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯本纳第克特托瓦兹(Linu…

【Linux】shell命令运行原理---认识Linux基本指令

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.shell命令以及运行原理 1.1 shell命令 1.2 Linux内核权限 1.3 图示Linux shell和bash的区别 2.认识Linux基本指令 2.1 指令的…

寻找可能认识的人

给一个命名为:friend.txt的文件 其中每一行中给出两个名字,中间用空格分开。(下图为文件内容) 题目:《查找出可能认识的人 》 代码如下: RelationMapper: package com.fesco.friend;import or…

【测试开发学习历程】MySQL条件查询与通配符 + MySQL函数运算(上)

前言: 18日08:56,总要先写完明天的博客,才能安心准备今天或者明天的学习。 半夜爬起来写博客真的好辛苦!!!!!!!!! 回归…

AI - 集成学习

目录 集成学习概念 集成学习器性能评估 随机森林 AdaBoost 😆😆😆感谢大家的阅读😆😆😆 集成学习概念 💎集成学习是机器学习中的一种思想,它通过多个模型的组合形成一个精度…

BUUCTF-----[CISCN 2019 初赛]Love Math

<?php error_reporting(0); //听说你很喜欢数学&#xff0c;不知道你是否爱它胜过爱flag if(!isset($_GET[c])){show_source(__FILE__); }else{//例子 c20-1$content $_GET[c];if (strlen($content) > 80) {die("太长了不会算");}$blacklist [ , \t, \r, \n…

由于找不到kvpvbsext64.dll,无法继续执行代码。解决办法,

kvpvbsext64.dll 是一个动态链接库文件&#xff0c;通常作为某个软件的一部分存在。具体来说&#xff0c;它可能为某个程序的特定功能提供支持&#xff0c;在软件运行时被调用和使用。因此&#xff0c;当出现与该文件相关的错误时&#xff0c;可能会影响到相应软件的正常运行。…

k8s集群部署elk

一、前言 本次部署elk所有的服务都部署在k8s集群中&#xff0c;服务包含filebeat、logstash、elasticsearch、kibana&#xff0c;其中elasticsearch使用集群的方式部署&#xff0c;所有服务都是用7.17.10版本 二、部署 部署elasticsearch集群 部署elasticsearch集群需要先优化…

【ZooKeeper】1、基本介绍

本文基于 Apache ZooKeeper Release 3.7.0 版本书写 作于 2022年3月6日 14:22:11 转载请声明 1、Zookeeper是什么&#xff1f; 由ZooKeeper的官网介绍可知&#xff1a; ZooKeeper 是Apache原子基金会下一个开源的、用于提供可靠的分布式协同的服务器。 ZooKeeper 可以用来 配置…

此站点的连接不安全,怎么解决?

有部分的网站用户在打开的时候会被提示“此站点的连接不安全”这种现象为什么会出现&#xff0c;大概率是因为没有安装SSL证书或者SSL证书出现了错误&#xff0c;小编在这里面将展开讲解为大家分析其中的原因以及解决方法。 一&#xff1a;遇到该情况的时候该怎么办&#xff1…