分布式事务之CAP理论和BASE理论详解

在这里插入图片描述

在这里插入图片描述

🚀 分布式事务 🚀

🌲 AI工具、AI绘图、AI专栏 🍀
🌲 如果你想学到最前沿、最火爆的技术,赶快加入吧✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 分布式事务 🚀

🍔 目录

    • 🌱 一.分布式事务场景
    • 🌱 二.分布式事务之CAP理论 - 强一致性
    • 🌱 三.分布式事务之BASE理论 - 最终一致性
    • 🌱 四.总结
    • 💬 五.共勉

🌱 一.分布式事务场景

分布式事务是指涉及多个独立的系统或服务的操作,这些操作需要保持一致性原子性

分布式事务通常有以下几种场景

  1. 跨服务的数据操作:在一个分布式系统中,不同服务可能会涉及到同一份数据,这时需要保证数据操作的一致性和原子性。

  2. 跨数据库的数据操作:在一个系统中,数据可能存储在不同的数据库中,这些数据库之间需要协调操作来保持一致性。

  3. 跨进程的数据操作:如果多个进程需要对某个数据进行修改,则需要协调多个进程的操作来保证数据操作的一致性。

  4. 跨节点的数据操作:在一个分布式系统中,可能会有多个节点对同一个数据进行操作,这些节点之间需要协调操作来保证数据的一致性和原子性。

总之,当一个分布式系统中存在多个独立的节点或服务,这些节点或服务需要协同完成一个事务时,就需要使用分布式事务来保证数据的一致性和原子性。

🌱 二.分布式事务之CAP理论 - 强一致性

  CAP 定理,又被叫作布鲁尔定理。CAP理论,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性),不能同时成立。

在这里插入图片描述

什么是网络分区?
分布式系统中,多个节点之前的网络本来是连通的,但是因为某些故障(比如部分节点网络出了问题)某些节点之间不连通了,整个网络就分成了几块区域,这就叫网络分区。

在这里插入图片描述
CAP 理论中分区容错性 P 是一定要满足的,在此基础上,只能满足可用性 A 或者一致性 C:

  • 怎么满足CP?

    对一致性要求高的场景。例如Zookeeper,任何时刻对 ZooKeeper 的读请求都能得到一致性的结果,但是, ZooKeeper 不保证每次请求的可用性。

  • 怎么满足AP?

    对可用性要求较高的场景。例如Eureka,Eureka 在设计的时候就是优先保证可用性。在 Eureka 中每个节点都是一样的、平等的。保证即使大部分节点挂掉也不会影响正常提供服务,只要有一个节点是可用的就可以了。

🌱 三.分布式事务之BASE理论 - 最终一致性

  BASE 理论是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)。BASE 理论本质上是对 CAP 的延伸和补充,BASE理论是对CAP理论中 AP 方案的一个补充,保证最终一致性。

  • 基本可用表示分布式系统在出现不可预知故障的时候,允许损失部分可用性。但是,这绝不等价于系统不可用。

  • S表示柔性状态,也就是允许短时间内不同步。

  • E表示最终一致性,数据最终是一致的,但是实时是不一致的。

在这里插入图片描述

🌱 四.总结

  本篇文章主要讲解了分布式事务之CAP理论和BASE理论的基本概念以及原理,后续为大家讲解分布式事务解决方案,大家敬请期待呦!!

💬 五.共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【软件安装】MATLAB_R2021b for mac 安装

Mac matlab_r2021b 安装 下载链接:百度网盘 下载链接中所有文件备用。 我所使用的电脑配置: Macbook Pro M1 Pro 16512 系统 macOS 13.5 安装步骤 前置准备 无此选项者,自行百度 “mac 任何来源”。 1 下载好「MATLAB R2021b」安装文…

【RabbitMQ】golang客户端教程1——HelloWorld

一、介绍 本教程假设RabbitMQ已安装并运行在本机上的标准端口(5672)。如果你使用不同的主机、端口或凭据,则需要调整连接设置。如果你未安装RabbitMQ,可以浏览我上一篇文章Linux系统服务器安装RabbitMQ RabbitMQ是一个消息代理&…

学习笔记|大模型优质Prompt开发与应用课(二)|第五节:只需3步,优质Prompt秒变应用软件

原作者:依依│百度飞桨产品经理 一乔│飞桨开发者技术专家 分享内容 01:大模型应用简介 02:LLM应用开发范式 03: Al Studio大模型社区 04:AI对话类应用开发技巧 大模型技术爆发,各类应用产品涌现 文心产业级知识增强大模型 工作中的“超级助手”—…

【数据结构】实验十一:图

实验十一 图 一、实验目的与要求 1)掌握图的存储表示与操作实现。 2)掌握图的连通性及其应用。 二、 实验内容 1.用邻接表存储一个图形结构,并计算每个顶点的度。 2. 采用深度和广度优先搜索算法,遍历上述这张图,…

网络基础-认识每层的设备和每层的特点用途

目录 网络层次常见设备各层介绍数据链路层网络层传输层应用层 网络层次 常见设备 各层介绍 数据链路层 有了MAC地址。数据链路层工作在局域网中的,以帧为单位进行传输和处理数据。 网络层 网络层有了IP。不同的网络通过路由器连接成为互联网 路由器的功能:   …

数据挖掘实战:基于KMeans算法对超市客户进行聚类分群(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

1.2 eureka注册中心,完成服务注册

目录 环境搭建 搭建eureka服务 导入eureka服务端依赖 编写启动类,添加EnableEurekaServer注解 编写eureka配置文件 启动服务,访问eureka Euraka服务注册 创建了两个子模块 在模块里导入rureka客户端依赖 编写eureka配置文件 添加Services 环境搭建 创建父…

【算法提高:动态规划】1.3 背包模型 TODO

文章目录 例题列表423. 采药(01背包)1024. 装箱问题(大小和价值相等的01背包)1022. 宠物小精灵之收服(二维费用的背包问题)补充:相关题目——8. 二维费用的背包问题 278. 数字组合(0…

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境

知识点:简单了解K210芯片 2018年9月6日,嘉楠科技推出自主设计研发的全球首款基于RISC-V的量产商用边缘智能计算芯片勘智K210。该芯片依托于完全自主研发的AI神经网络加速器KPU,具备自主IP、视听兼具与可编程能力三大特点,能够充分适配多个业务场景的需求。作为嘉楠科…

快速搭建Vue项目

1.安装node环境 下载地址为:https://nodejs.org/en/ 注意node版本问题,有很多情况下是node版本问题导致的错误。 2.安装淘宝镜像cnpm 为了提高我们的效率,可以使用淘宝的镜像:http://npm.taobao.org/ npm install cnpm -g --r…

PostgreSQL Patroni_exporter 监控 patroni高可用工具

Patroni是Cybertec公司基于python语言开发的,可用于使用流复制来创建,管理,维护和监视高可用性PostgreSQL集群设置的工具。 目前,PatroniEtcd 是最为推荐的PostgreSQL数据库高可用方案之一。 PostgreSQL有postgres_exporter监控采…

华为OD机试真题 JavaScript 实现【小朋友排队】【2023 B卷 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、JavaScript算法源码六、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试&am…

uC-OS2 V2.93 STM32L476 移植:环境搭建篇

前言 uC-OS2 是比较经典的 RTOS,如今软件授权已经改为 Apache License Version 2.0,意味着可以免费商用了 当前 uC-OS2 的最新版本是: V2.93,打算研究一下 RTOS 的设计思想,所以想在已有的开发板:NUCLEO-L…

WAVE SUMMIT 定档8月16日,或将曝百度飞桨、文心大模型最新进展

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

【LeetCode 75】第十七题(1493)删掉一个元素以后全为1的最长子数组

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 给一个数组,求删除一个元素以后能得到的连续的最长的全是1的子数组。 我们可以先单独统计出连续为1的子数组分别长度…

Vue3--->组合式API与Pinia

目录 使用create-vue搭建 1、使用create-vue创建项目 2、项目目录和关键文件 组合式API 1、组合式API - setup选项 2、组合式API - reactive和ref函数 3、组合式API - computed 4、组合式API - watch 1、基础使用 - 侦听单个数据 2、基础使用 - 侦听多个数据 3、immediate&…

【单片机】温控系统参数辨识及单片机PID控制

温控系统参数辨识及单片机PID控制 1. 温控系统组成2. matlab辨识系统参数2.1 采集阶跃响应信号导入matlab系统辨识模块 PID控制 1. 温控系统组成 半导体制冷片正向通电制冷,反向通电制热。系统采用半导体制冷片(帕尔贴)作为执行单元&#xf…

WilliamNing - 电脑办公环境 - 以及个人工作/开发习惯 - Windows/Mac

主要是记录个人的办公环境习惯,方便到新的环境,快速搭建自己熟悉的环境,从而提高工作效率 1. Windows 深圳客友 腾讯外包 家里电脑 TBD 2. Mac SeekAsia[深圳就业网络] Kumu[成都脑海科技] 2.1 桌面软件列表 后调整 -- 加了一些软件 同时…

组件化、跨平台…未来前端框架将如何演进?

前端框架在过去几年间取得了显著的进步和演进。前端框架也将继续不断地演化,以满足日益复杂的业务需求和用户体验要求。从全球web发展角度看,框架竞争已经从第一阶段的前端框架之争(比如Vue、React、Angular等),过渡到…

BUG分析以及BUG定位

一般来说bug大多数存在于3个模块: 1、前台界面,包括界面的显示,兼容性,数据提交的判断,页面的跳转等等,这些bug基本都是一眼可见的,不太需要定位,当然也不排除一些特殊情况&#xf…