当前位置: 首页 > news >正文

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

相关文章:

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

借鉴:https://cloud.tencent.com/developer/article/1840206 https://www.cnblogs.com/huanghuanghui/p/9592016.html 一:CAP概念和三种情况 1.概念: C全称Consistency(一致性):这个表示所有节点返回的数…...

npm pnpm yarn(包管理器)的安装及镜像切换

安装Node.js 要安装npm,你需要先安装Node.js。 从Node.js官方网站(https://nodejs.org)下载并安装Node.js。 根据你的需要选择相应的版本。 一路Next,直到Finish 打开CMD,输入命令来检查Node.js和npm是否成功安装 nod…...

Javase | Java工具类、(SSM)各种依赖的作用

目录: Java工具类:日期工具类文件上传工具类 短信工具类验证码工具类邮件工具类代码生成器 (SSM)各种依赖的作用:spring-context 依赖:spring-context-supprt 依赖:spring-tx 依赖:mysql-connector-java 依赖:spring-j…...

深入探究Python中的JSON、Pickle和Shelve模块:特性与区别

更多资料获取 📚 个人网站:ipengtao.com 在Python中,处理数据序列化和持久化是极其重要的。JSON、Pickle和Shelve是三种常用的模块,它们提供了不同的方法来处理数据的序列化和持久化。本文将深入研究这三个模块,探讨它…...

文心大模型3.5 VS ChatGPT3.5,谁更会写代码 ?

问题:请帮我写一段代码,SAP物料凭证创建接口的代码 ? 文心大模型3.5:写了一段 python ChatGPT3.5 : 写的还可以啊,理解的很到位,而且用的是S/4新语法呀 ! DATA: lt_header TYPE TABLE OF bapi2017_gm_head_…...

【网络安全】用永恒之蓝(Eternal blue)测试windows系统的安全性

一、kali默认账户和密码都为kali 攻击机:Linux 的 kali 目标机:Windows7 x64 二、kali、metasploit、metasploit 攻击 windows操作系统、metasploit 攻击 永恒之蓝 全流程 ①kali:是黑客攻击机。开源免费的Linux操作系统,含有300…...

对于Web标准以及W3C的理解、对viewport的理解、xhtml和html有什么区别?

1、对于Web标准以及W3C的理解 Web标准 Web标准简单来说可以分为结构、表现、行为。 其中结构是由HTML各种标签组成,简单来说就是body里面写入标签是为了页面的结构。 表现指的是CSS层叠样式表,通过CSS可以让我们的页面结构标签更具美感。 行为指的是…...

大语言模型概述(一):基于亚马逊云科技的研究分析与实践

大型语言模型指的是具有数十亿参数(B)的预训练语言模型(例如:GPT-3, Bloom, LLaMA)。这种模型可以用于各种自然语言处理任务,如文本生成、机器翻译和自然语言理解等。 大语言模型的这些参数是在大量文本数据上训练的。…...

LuatOS-SOC接口文档(air780E)--repl - “读取-求值-输出” 循环

示例 --[[ 本功能支持的模块及对应的端口 模块/芯片 端口 波特率及其他参数 Air101/Air103 UART0 921600 8 None 1 Air105 UART0 1500000 8 None 1 ESP32C3 UART0 921600 8 None 1 -- 注意, 简约版(无CH343)不支持 ESP32C2 …...

SpringBoot项目打成jar包后,上传的静态资源(图片等)如何存储和访问

1.问题描述: 使用springboot开发一个项目,开发文件上传的时候,通常会将上传的文件存储到资源目录下的static里面,然后在本地测试上传文件功能没有问题,但是将项目打成jar包放到服务器上运行的时候就会报错&#xff0c…...

Selenium Grid

Selenium Grid 什么是Selenium Grid Selenium是Selenium套件的一部分,它专门用于并行运行多个测试用例在不同的浏览器、操作系统和机器上 Selenium Grid的两个版本 Grid1与Grid2两个版本的原理和基本工作方式完全相同,Grid2同时支持Selenium1和Selenium2&#x…...

ubuntu系统下搭建本地物联网mqtt服务器的步骤

那么假如我们需要做一些终端设备,例如温湿度传感器、光照等物联网采集设备要接入呢?怎么样才能将数据报送到服务器呢? 以下内容基于我们ubuntu系统下的emqx成功启动的基础上。我们可以用浏览器键入控制板的地址,如果启动成功&…...

计算机二级考试题库(答案)

题目一:计算机网络基础 1.计算机网络的定义是什么? 计算机网络是指由通讯设备和不同类型计算机组成的计算机系统,利用传输介质,如电缆、光缆、无线等与通讯协议,实现计算机之间的信息传递和共享资源。 2. 内网和外网有什么区别?…...

React Native 源码分析(五)—— Fabric创建View的过程

这篇文章详细分析一下,在React Native 新架构下,Fabric是如何创建View的,从React层发送把View信息到原生端开始分析。说明一点,React 层fiber的创建更新过程,不属于Fabric。其中Yoga的绘制过程不会太详细,只会给出大概流程,像布局缓存这些。文章的重点是帮你理解Fabric的…...

为什么同样的C代码在arm64-v8a可以跑,在armeabi-v7a会奔溃?

文章目录 背景过程第一个坑第二个坑 arm64-v8a 和 armeabi-v7a的区别实例64位,Android设备CPU:arm64-v8a32位,Android设备CPU:armeabi-v7a 基本数据类型在32位和64位的区别指针长度在32位和64位的区别 其他可能性chatgpt回答参考 背景 使用NDK开发项目的…...

C++初学者线路图 23年12月

高精度计算 1. 高精度加减法 高精度加减法课程(12月1日~12月4日)高精度加减法配套程序(12月5日~12月6日) 2. 高精度乘法 高精度乘法课程(12月7日~12月10日)高精度乘法…...

Day37| Leetcode 738. 单调递增的数字

今天就一个题目,做完吃完饭抓紧做六级试题。 Leetcode 738. 单调递增的数字 题目链接 738 单调递增的数字 本题目思路还是比较巧妙的,对于98,一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首…...

【工具分享】| 阅读论文神器 使用技巧 AI润色 AI翻译

文章目录 1 使用技巧1.1 功能一 即时翻译1.2 功能二 文献跳转1.3 功能三 多设备阅读1.4 功能四 小组讨论笔记共享1.5 功能五 个人文献管理 2 其他功能 超级喜欢Readpaper这一款论文阅读软件,吹爆他哈哈 为什么? 当然是他可以解决我们传统阅读论文的种种…...

String.prototype.match进行==判断

今天发现一个String.prototype.match的奇葩用法 export const isWeChat (() > {let ua window.navigator.userAgent.toLowerCase();return ua.match(/MicroMessenger/i) "micromessenger"; })();这是我在网站上找到的一个判断是否是微信浏览器的方法&#xff…...

less 笔记

<link rel"stylesheet/less" type"text/css" href"styles.less" /> <script src"https://cdn.jsdelivr.net/npm/less4" ></script>变量&#xff08;Variables&#xff09; 原生已支持 --前缀定义属性 var() 函数获取…...

nnUNet实战:如何根据你的显卡显存,手动调整batch_size和patch_size(附代码)

nnUNet显存优化实战&#xff1a;精准调整batch_size与patch_size的黄金法则 当你第一次在本地运行nnUNet训练脚本时&#xff0c;看到那个刺眼的CUDA out of memory错误&#xff0c;是不是有种功亏一篑的挫败感&#xff1f;别担心&#xff0c;这不是你的代码问题&#xff0c;而是…...

CPython AOT编译器模块全图谱,从_pycompile.c到aot_codegen.cc的17个关键函数逐行注释与性能拐点分析

第一章&#xff1a;CPython AOT编译器模块全图谱概览与演进脉络CPython 的 Ahead-of-Time&#xff08;AOT&#xff09;编译能力并非原生内建&#xff0c;而是近年来通过社区驱动的实验性项目逐步构建起模块化支撑体系。其核心演进路径始于 PEP 698 提出的字节码预编译增强机制&…...

小红书数据采集实战:5个Python技巧让爬虫更智能

小红书数据采集实战&#xff1a;5个Python技巧让爬虫更智能 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 在小红书这个拥有数亿用户的社交电商平台上&#xff0c;海量的用…...

RT thread—iic—at24c04读写操作

at24c04介绍&#xff1a;存储容量&#xff1a;4 Kbits&#xff08;即 512 字节&#xff09;。内部结构为 32 页&#xff0c;每页 16 字节。地址0x000-0x1FF通信接口&#xff1a;标准 I2C&#xff08;时钟线 SCL 和数据线 SDA&#xff09;&#xff0c;支持最高 400 kHz 的快速模…...

AI辅助开发:描述需求,快马AI自动生成旅行商问题算法与可视化

最近在做一个旅行商问题(TSP)的算法项目&#xff0c;想试试用AI辅助开发能有多高效。结果发现InsCode(快马)平台的AI功能真的帮了大忙&#xff0c;整个过程特别顺畅。这里分享一下我的体验。 需求分析阶段 刚开始我只是简单描述了需求&#xff1a;"需要一个用模拟退火算…...

企业AI定制开发:以工业场景为核心,赋能全行业数智化转型

在人工智能与实体经济深度融合的趋势下&#xff0c;标准化AI产品难以适配企业差异化业务流程&#xff0c;定制化AI开发成为企业数智化转型的关键路径。山东向量空间人工智能科技有限公司依托JBoltAI企业级Java AI应用开发框架&#xff0c;聚焦工业领域AI改造&#xff0c;同时为…...

等保.三级要求下Redis 安全测评应该怎么做?

1. 引入 在现代 AI 工程中&#xff0c;Hugging Face 的 tokenizers 库已成为分词器的事实标准。不过 Hugging Face 的 tokenizers 是用 Rust 来实现的&#xff0c;官方只提供了 python 和 node 的绑定实现。要实现与 Hugging Face tokenizers 相同的行为&#xff0c;最好的办法…...

seo优化机构怎样选择才合适_什么是seo优化机构

SEO优化机构怎样选择才合适_什么是SEO优化机构 在当今的数字化时代&#xff0c;拥有一个高效的网站已经不再是企业竞争力的唯一标准&#xff0c;更重要的是这个网站能够在搜索引擎上获得良好的排名。这就是搜索引擎优化&#xff08;SEO&#xff09;的重要性所在。选择一个合适…...

电路原理与人生哲学的奇妙对应关系

1. 电路与人生的奇妙映射作为一名在电子行业摸爬滚打十多年的工程师&#xff0c;我常常惊叹于电路原理与人生百态之间的惊人相似。记得刚入行时&#xff0c;我的导师就说过&#xff1a;"读懂电路&#xff0c;就读懂了人生。"当时只觉得是句玩笑话&#xff0c;直到这些…...

【限时解禁】Cuvil编译器v0.9.3内部架构设计图(含Python动态类型静态化映射表),仅开放72小时

第一章&#xff1a;Cuvil 编译器在 Python AI 推理中的应用Cuvil 是一款面向 AI 工作负载的轻量级领域专用编译器&#xff0c;专为优化 Python 生态中基于 PyTorch 和 ONNX 的模型推理而设计。它通过静态图重写、算子融合与硬件感知调度&#xff0c;在不修改用户代码的前提下&a…...