CAP概念和三种情况、Redis和分布式事务的权衡

借鉴:https://cloud.tencent.com/developer/article/1840206
https://www.cnblogs.com/huanghuanghui/p/9592016.html
在这里插入图片描述

一:CAP概念和三种情况

1.概念:
C全称Consistency(一致性):这个表示所有节点返回的数据是一致的。

A全称Availability(可用性):每一个非故障节点,都能够对每一个请求做出响应。说白了就是某个节点坏了,不能影响其他的节点业务。

P全称Partition tolerance(分区容错性):当系统中有节点因网络原因无法通信时,系统依然可以继续运行。(即集群)

2.三种情况
2.1 AP场景:更新操作主Mysql成功了,就返回成功
在这里插入图片描述

写请求把用户姓名【张三】改为【李四】,写请求写入主Mysql成功后,系统就直接返回成功;然后再通过主Mysql的binlog日志方式把数据同步到从Mysql。
这种方式其实是放弃了数据一致性。因为如果出现网络延迟,数据没有及时同步到从Mysql,那就导致了主Mysql值为李四,而从Mysql值为张三,导致数据不一致。但主从mysql照样可以提供服务,也就是保证了可用性A。

2.2 CP场景:更新操作主从mysql都成功了,才返回成功
在这里插入图片描述

写请求把用户姓名【张三】改为【李四】,写请求一定要等到主从mysql都写入成功了,系统才能成功返回。
这种方式保证了数据一致性,因为主从mysql更新数据都成功才算成功,但网络出现问题时,主mysql无法访问从节点,导致写操作一直不成功。其实就是放弃了可用性,只满足CP原则,系统只能提供读服务。

综合来看,再满足P的前提下,是不可能同时满足C和A的。

2.3 CA场景: 单点集群,满足一致性,可用性的系统,通常在可扩展性上不强大。

分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作。
集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问。

二:Redis和分布式事务的权衡

1、Redis中间件 ----> AP
2、RocketMQ中间件 -----> AP
3、分布式事务-2pc ----> CP
4、分布式事务-最大努力尝试 —> AP
5、Eureka —> AP
6.Mysql三种主从复制下:
异步 AP
同步 CP
半同步 AP

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

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

相关文章

轻易云AI:引领企业数智化转型提升企业AI效率

近期,轻易云AI与汤臣倍健的合作引起了业界的广泛关注。通过这一合作,轻易云AI不仅成功打造了集团小汤AI助手这一标志性的企业智能助手,更重要的是,这一合作凸显了轻易云AI作为专业AI应用集成专家的核心能力。轻易云AI已成功集成了…

Spring之RestTemplate详解

Spring之RestTemplate详解 1 RestTemplate1.1 引言1.2 环境配置1.2.1 非Spring环境下使用RestTemplate1.2.2 Spring环境下使用 RestTemplate1.2.3 Spring环境下增加线程号 1.3 API 实践1.3.1 GET请求1.3.1.1 不带参请求1.3.1.2 带参的get请求(使用占位符号传参)1.3.1.3 带参的g…

创建内存泄漏(js的问题)

如果没有有意识地编写代码来避免内存泄漏,那么内存泄漏几乎是不可避免的JavaScript问题。它们的发生方式有很多种,所以我们只重点介绍几种比较常见的情况。 内存泄漏实例1:对不存在的对象的悬空引用 考虑以下代码: var theThing null; var replaceTh…

Redis7--基础篇4(Redis事务)

Redis事务是什么 可以一次执行多个命令,本质是一组命令的集合,一个事务中的所有命令都会序列化,按顺序串行,而不会被其他命令插入。 其作用就是在一个队列中,一次性、顺序、排他的执行一系列命令。 Redis事务 VS 数据…

【每日一题】拼车+【差分数组】

文章目录 Tag题目来源解题思路方法一:差分 写在最后 Tag 【差分数组】【数组】【2023-12-02】 题目来源 1094. 拼车 解题思路 本题朴素的解题思路是统计题目中提到的每一个站点的车上人数,如果某个站点的车上人数大于车上的座位数直接返回 false&…

SSE4.2 指令集内置函数来加速32位循环冗余校验(CRC-32)计算

1、_mm_crc32_u8 为什么比查表快? _mm_crc32_u8 指令使用了 SIMD 技术(即单指令多数据流技术),可以同时处理多个字节的数据。这些字节被打包成 64 位整数,然后使用单条 _mm_crc32_u64 指令计算它们的 CRC-32 校验和。…

基于 Vue、Datav、Echart 框架的 “ 数据大屏项目 “,通过 Vue 组件实现数据动态刷新渲染,内部图表可实现自由替换

最近在研究大数据分析,基于 Vue、Datav、Echart 框架的 " 数据大屏项目 ",通过 Vue 组件实现数据动态刷新渲染,内部图表可实现自由替换。部分图表使用 DataV 自带组件,可进行更改,详情请点击下方 DataV 文档…

flask中遇到ImportError: cannot import name ‘url_encode‘ from ‘werkzeug‘

报错信息 Traceback (most recent call last): File “book_management_sys.py”, line 5, in from forms import Login, SearchBookForm, ChangePasswordForm, EditInfoForm, SearchStudentForm, NewStoreForm, StoreForm, BorrowForm File “C:\pythonProject\pythonProject…

abapgit 安装及使用

abapgit 需求 SA[ BASIS 版本 702 及以上 版本查看路径如下: 安装步骤如下: 1. 下载abapgit 独立版本 程序 链接如下:raw.githubusercontent.com/abapGit/build/main/zabapgit_standalone.prog.abap 2.安装开发版本 2.1 在线安装 前置条…

【C++】类和对象——初始化列表和static修饰成员

首先我们来谈一下初始化列表,它其实是对于我们前边构造函数体内初始化的一种补充,换一种说法,它以后才是我们构造函数的主体部分。 我们先考虑一个问题,就是一个类里面有用引用或const初始化的成员变量,比如说&#xf…

HTML_web扩展标签

1.表格标签 2.增强表头表现 4.表格属性(实际不常用) 结构标签: 合并单元格: 更多请查看主页

从零开始,探索Spring框架的魅力与实践

Spring 1,介绍1.1 为什么要学?1.2 学什么? 2,Spring相关概念2.1 初识Spring2.1.1 Spring家族2.1.2 了解Spring发展史 2.2 Spring系统架构2.2.1 系统架构图2.2.2 spring主要内容 2.3 Spring核心概念2.3.1 目前项目中的问题2.3.2 IOC、IOC容器、Bean、DI…

影刀实例五,网页表单中多下拉框填写问题

一,背景 网页表单中,经常有这样一个场景,填写籍贯.并且是以三个下拉框表示,分别代表省,市,县.并且都是非标准的,不能直接使用影刀内置命令.常规思路是:分别处理省,市&…

万能的视频格式播放器

今天博主给大家带来一款“万能”的视频播放器——VLC Media Player,支持的文件格式非常多,大家快来一起看看吧! VLC Media Player 是一款可播放大多数格式,而无需安装编解码器包的媒体播放器。可以播放 MPEG-1、MPEG-2、MPEG-4、D…

C语言-指针_02

指针-02 1. 指针的指针 概念&#xff1a;指针变量中存储的是指针的地址&#xff0c;又名 二维指针 语法&#xff1a; 数据类型 **p;示例&#xff1a; #include <stdio.h> int main(int argc, char const *argv[]) {int num 10;int *p1 &num;int **p2 &p1…

Java八股文面试全套真题【含答案】-Web前端篇

以下是一些关于JavaScript语言的经典面试题以及它们的答案&#xff1a; JavaScript的数据类型有哪些&#xff1f;它们的特点是什么&#xff1f; 答案&#xff1a;JavaScript的数据类型包括基本数据类型&#xff08;undefined、null、boolean、number、string&#xff09;和引用…

Python Flask 框架开发

1. Python 代码示例&#xff08;使用 Flask 框架&#xff09; 1.1 安装依赖库 pip install flask flask_sqlalchemy flask_login flask_wtf 1.2 主应用文件 app.py from flask import Flask, request, jsonify, redirect, url_for, render_template, flash from flask_sqla…

深度学习——第1章 深度学习的概念及神经网络的工作原理

1.1 序言——探索智能机器 千百年来&#xff0c;人类试图了解智能的机制&#xff0c;并将它复制到思维机器上。 人类从不满足于让机械或电子设备帮助做一些简单的任务&#xff0c;例如使用滑轮吊起沉重的岩石&#xff0c;使用计算器做算术。 人类希望计算机能够自动化执行更…

医美店会员管理系统预约小程序作用是什么

医美在美业中占据着一定地位&#xff0c;爱美使然和经济独立、悦己消费下&#xff0c;不少女性会前往医美机构做脸部整容、嫩肤补水等服务&#xff0c;如美容院一样都是具备本地外地属性的&#xff0c;因此在如今互联网盛行下&#xff0c;商家需要借势线上破解难题及增强生意效…

【预测工具】不须编码的预测和数据可视化工具

有一天&#xff0c;我的同事问我&#xff0c;他应该如何做一个快速预测模型而不是Excel&#xff0c;并产生比线性回归或Excel图中的那些简单方程更好的结果。这是我的答案。 TableCurve 2D (Image by author) Sigmaplot很早以前就推出了这个软件。它已被广泛用于在数据中寻找最…