CAP和Base理论

简介: CAP理论指出:分布式系统中,分区容错性(P)不可避免,网络故障时需在一致性(C)和可用性(A)间权衡。BASE理论提供解决思路:基本可用、软状态、最终一致性,通过牺牲强一致性和部分可用性,保障系统整体可用与最终数据一致,适用于高并发分布式场景。(238字)

Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。
Availability (可用性):用户访问集群中的任意健康节点必须能得到响应,而不是超时或拒绝。
Partition(分区):因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区。
Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务
系统间的网络不能100%保证健康,一定会有故障的时候,而服务又必须对外保证服务。因此Partition Tolerance不可避免。
如果此时要保证一致性,就必须等待网络恢复,完成数据同步后,整个集群才对外提供服务,服务处于阻塞状态,不可用。
如果此时要保证可用性,就不能等待网络恢复,那node01、node02与node03之间就会出现数据不一致。
也就是说,在P一定会出现的情况下,A和C之间只能实现一个

BASE理论是对CAP的一种解决思路,包含三个思想:
● Basically Available(基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
● Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。
● Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

相关文章
|
6月前
|
Java 大数据
ArrayList扩容机制
ArrayList 添加元素时,先调用 `ensureCapacityInternal()` 确保容量充足。首次添加时,最小容量为 1,经比较后扩容至默认值 10。后续添加元素时,若容量不足则触发 `grow()` 方法,将容量扩大为原来的 1.5 倍(通过位运算 `oldCapacity + (oldCapacity >> 1)` 实现),提升性能。扩容后赋值并返回 true。注意:`length` 用于数组,`length()` 用于字符串,`size()` 用于集合。
|
6月前
|
存储 自然语言处理 测试技术
一行代码,让 Elasticsearch 集群瞬间雪崩——5000W 数据压测下的性能避坑全攻略
本文深入剖析 Elasticsearch 中模糊查询的三大陷阱及性能优化方案。通过5000 万级数据量下做了高压测试,用真实数据复刻事故现场,助力开发者规避“查询雪崩”,为您的业务保驾护航。
2193 89
|
7月前
|
缓存 运维 监控
一次内存诊断,让资源利用率提升 40%:揭秘隐式内存治理
阿里云云监控 2.0 推出 SysOM 底层操作系统诊断能力,基于 eBPF + BTF 协同分析,无需侵入业务,即可一键完成从物理页到文件路径、再到容器进程的全栈内存归因,让“黑盒内存”无所遁形。
1149 120
|
7月前
|
存储 缓存 Java
重构一个类,JVM竟省下2.9G内存?
通过重构核心类,将 `HashMap<Long, HashSet<String>>` 优化为 `Long2ObjectOpenHashMap<int[]>`,结合数据分布特征与紧凑存储,JVM 堆内存从 3.13GB 降至 211MB,降幅达 94%,验证了高效数据结构在海量场景下的巨大价值。
730 24
重构一个类,JVM竟省下2.9G内存?
|
5月前
|
人工智能 自然语言处理 API
n8n:流程自动化、智能化利器
流程自动化助你在重复的业务流程中节省时间,可通过自然语言直接创建工作流啦。
1399 9
n8n:流程自动化、智能化利器
|
6月前
|
数据采集 人工智能 运维
AgentRun 实战:快速构建 AI 舆情实时分析专家
搭建“舆情分析专家”,函数计算 AgentRun 快速实现从数据采集到报告生成全自动化 Agent。
1557 57
|
10月前
|
SQL JSON 监控
JSON 日志分析的“正确姿势”:阿里云 SLS 高效实践指南
JSON 日志因灵活易扩展而广泛应用,但其海量数据也带来分析挑战。本文系统介绍阿里云日志服务(SLS)中处理 JSON 日志的最佳实践,涵盖数据预处理、索引配置、JSON 函数使用及 SQL 智能生成,助你高效挖掘日志价值。
4712 23
|
存储 监控 druid
Druid、ClickHouse、Doris、StarRocks 的区别与分析
本文对比了 Druid、ClickHouse、Doris 和 StarRocks 四款大数据分析引擎。它们均为 OLAP 引擎,采用列式存储和分布式架构,适用于海量数据分析。Druid 擅长实时分析与高并发查询;ClickHouse 以超高性能著称,适合复杂查询;Doris 提供易用的 SQL 接口,性能均衡;StarRocks 则以其极速查询和实时更新能力脱颖而出。各引擎在数据模型、查询性能、数据更新和存储方面存在差异,适用于不同的业务场景。选择时需根据具体需求综合考虑。
8014 20
|
11月前
|
数据采集 JSON API
Excel数据治理新思路:引入智能体实现自动纠错【Python+Agent】
本文介绍如何利用智能体与Python代码批量处理Excel中的脏数据,解决人工录入导致的格式混乱、逻辑错误等问题。通过构建具备数据校验、异常标记及自动修正功能的系统,将数小时的人工核查任务缩短至分钟级,大幅提升数据一致性和办公效率。
3096 23