如何实现最终一致性分布式事务

  1. 如何实现最终一致性分布式事务
    1. 二阶段提交
      1. 概念:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情况决定各个参与者是否要提交操作或者终止操作
      2. 作用:主要保证了分布式事务的原子性,第一阶段为准备阶段,第二阶段为提交阶段
      3. 缺点:不仅要锁住参与者的所有资源,而且要锁住协调者资源,开销大,一句话总结就是2PC效率很低,对高并发很不友好
    2. 三阶段提交:
      1. 概念:三阶段提交协议在协调者和参与者中都引入了超时机制,并且把两阶段提交协议的第一阶段拆分成了两步:询问,然后再锁资源,最后真正提交,这样三阶段提交就有CanCommit,PreCommit,DoComiit三个阶段。
        1. 协调者询问各个参与者是否可以正常执行
        2. 参与者集群预估判断是否可以执行
        3. 正常执行,进入pre-commit,不满足或者等待超时,abort
        4. 协调者询问各个参与者是否可以正常执行
        5. 参与者集群执行事务但是不提交
        6. 协调者接受反馈,正常执行则commit,失败或者等待超时则rollback
        7. 协调者向所有参与者发起事务提交通知
        8. 参与者集群收到通知或超时提交
        9. 参与者集群反馈事务提交结果
        10. 参与者超时提交,出现不一致
      2. 缺点:如果进入pre-commit后,协调者发出的是abort请求,假设只有一个参与者收到并进行了abort操作,而其他对于系统状态未知的参与者选择继续提交commit,此时系统状态发生不一致
    3. 柔性事务
      1. 概念:所谓柔性事务是相对强制缩表的刚性事务而言,流程如下:
        1. 服务器A的事务如果执行顺利,那么事务A就先行提交,如果事务B也执行顺利,则事务B也提交,整个事务就算完成,
        2. 但是如果事务B执行失败,事务B本身回滚,这时事务A已经提交,所以需要执行一个补偿操作,将已经提交的事务A执行的操作进行反操作,恢复到未执行前事务A的状态
      2. 缺点:业务侵入性太强,还要补偿操作,缺乏普遍性,没法大规模推广
    4. 消息最终一致性解决方案之RabbitMQ实现:
      1. 实现:发送方确认+消息持久化+消费者确认

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

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

相关文章

Docker 容器在不同服务器中的迁移

假如我们有一台新的服务器,想把旧服务器的容器迁移到新服务器中,这样新服务器就不用重新配置环境了,该怎么做呢? 如果新服务器没有docker,则先进行docker安装: curl -fsSL https://get.docker.com | bash…

【工作流】 工作流相关概念及Activiti基本介绍

目录 工作流作用工作流的几个要素应用具体应用场景 工作流系统工作流系统的组成部分:都有哪些工作流系统 工作流引擎工作流引擎的特点:都有哪些工作流引擎 工作流、工作流引擎、工作流系统三者区别ActivitiActiviti的主要特点发展历史优缺点优点&#xf…

9、架构-从类库到服务之服务发现

目录 概述 服务发现 1 服务发现的意义 全限定名与IP地址 服务发现的历史演变 2 可用与可靠 服务发现的高可用与高可靠 3 注册中心实现 服务注册中心的架构设计 常见问题及解决方案 结论 概述 微服务架构的一个重要设计原则是“通过服务来实现独立自…

医疗保健的未来——Kompas.ai如何助力精准医疗

引言 在现代医学中,精准医疗逐渐成为提高诊疗效果的重要手段。随着科技的进步,人工智能(AI)在医疗领域的应用越来越广泛。本文将探讨精准医疗的发展趋势,并介绍Kompas.ai如何通过AI技术助力精准医疗的发展。 精准医疗…

哈尔滨三级等保测评需要测哪些设备?

哈尔滨三级等保测评需要测的设备,主要包括物理安全设备、网络安全设备和应用安全设备三大类别。这些设备在保障哈尔滨地区信息系统安全方面发挥着至关重要的作用。 首先,物理安全设备是确保信息系统实体安全的基础。在哈尔滨三级等保测评中,物…

Python追踪变量:深入剖析与实用技巧

Python追踪变量:深入剖析与实用技巧 在Python编程中,追踪变量的变化对于调试和理解代码的执行流程至关重要。然而,随着程序的复杂性增加,变量的追踪变得愈发困难。本文将从四个方面、五个方面、六个方面和七个方面,深…

纷享销客安全体系:安全合规认证

安全合规认证是指组织通过独立的第三方机构对其信息系统和数据进行评估和审查,以确认其符合相关的安全标准、法律法规和行业要求的过程。 安全合规认证可以帮助组织提高信息系统和数据的安全性,并向客户、合作伙伴和监管机构证明其符合相关的安全标准和…

Parallels Desktop for Mac 19.4.0更新了哪些内容?有什么改进?

带来了重新设计的共享 Mac 文件夹版本,这些文件夹现在是符号链接,像指针一样指向您的 Mac 文件夹中的文件,同时仍然显示在 Windows 的本地磁盘上。 修复了由于共享文件夹问题导致 NinjaTrader 无法正常启动的问题。 修复了由于共享文件夹问…

指标体系建设10大坑

在企业经营和运营管理中,指标体系的建设至关重要,它在一定程度上是反映业务的问题状况,影响决策者的决策。但是,在指标体系的建设过程中,常常会存在一些不容忽视的“坑”,今天做个总结,以下为个…

基于SpringBoot+Vue电影院选票系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还…

基于Python+FFMPEG环境下载B站歌曲

题主环境 WSL on Windows10 命令如下 # python3.9 pip install --pre yutto yutto --batch https://www.bilibili.com/video/BV168411o7Bh --audio-only ls | grep aac | xargs -I {} ffmpeg -i {} -acodec libmp3lame {}.mp3WinAmp

大白话讲清楚:什么是 Langchain 及其核心概念

在AI和机器学习领域,每天都有新技术和框架涌现。今天,我们来聊聊最近引起广泛关注的一个框架 —— Langchain。 https://python.langchain.com/docs/get_started/introduction 那么,Langchain到底是什么,它为什么这么受欢迎&…

.NET集成DeveloperSharp操作Redis缓存

🏆作者:科技、互联网行业优质创作者 🏆专注领域:.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 🏆欢迎关注我(Net数字智慧化基地),里面…

C语言 XOR加解密

一、XOR加密特性 简单性:XOR是一种基本的位运算,实现起来非常简单,不需要复杂的算法或库。 速度:由于其简单性,XOR操作执行速度很快,适合需要快速处理大量数据的场景。 可逆性:XOR操作是可逆…

Vue3+vite部署nginx的二级目录,使用hash模式

修改router访问路径 import { createRouter, createWebHashHistory } from vue-routerconst router createRouter({history: createWebHashHistory (/mall4pc-bbc/),routes: [XXX,] })配置package.json文件 "build:testTwo": "vite build --mode testing --ba…

go语言接口之接口值

概念上讲一个接口的值,接口值,由两个部分组成,一个具体的类型和那个类型的值。它们 被称为接口的动态类型和动态值。对于像Go语言这种静态类型的语言,类型是编译期的概 念;因此一个类型不是一个值。在我们的概念模型中…

PCL 多边形缩放操作

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里基于之前的博客(PCL 计算多边形质心点(二维))实现多边形的缩放操作,思路很简单:即沿着质心点与多边形端点的方向缩小或放大整个多边形。 二、实现代码 //标准文件 #include <limits> #include <…

2024-06-07 问AI: LLM tokenizer 是什么?

文心一言 LLM Tokenizer&#xff08;大型语言模型分词器&#xff09;是大型语言模型&#xff08;Large Language Model, LLM&#xff09;中的一个关键组件&#xff0c;它负责将输入的文本数据转换为模型能够处理的数值格式。以下是关于LLM Tokenizer的详细解释&#xff1a; 基…

R语言数据分析16-针对芬兰污染指数的分析与考察

1. 研究背景及意义 近年来&#xff0c;随着我国科技和经济高速发展&#xff0c;人们生活质量也随之显著提高。但是&#xff0c; 环境污染问题也日趋严重&#xff0c;给人们的生活质量和社会生产的各个方面都造成了许多不 利的影响。空气污染作为环境污染主要方面&#xff0c;更…

PolygonalSurfaceContourLineInterpolator 多边形交互器

1. 效果&#xff1a; 2.简介&#xff1a; 可以实现在多边形上进行交互&#xff0c;选择&#xff1b;在多边形曲面上实现轮廓点的交互绘制。 该类的使用需要结合 vtkPolygonalSurfacePointPlacer 类&#xff0c;定位点的功能也就是拾取器。 前提&#xff1a;输入的多边形曲面…