分布式系统设计相关原理
CAP原理
一致性(consistency):有的节点上的数据时刻保持同步。对一个写操作,如果系统返回了成功,那么之后到达的读请求都必须读到这个新的数据。
可用性(Availablitity):在集群中一部分节点故障后,集群整体是否还能响应客服端的读写请求。
分区容忍性(partition-tolerance):分区容错性可以理解为系统在存在网络分区的情况下仍可以接受请求。
然而一个分布式系统不可能同时满足这三个需求,分布式架构设计时,必须做出取舍,分区容忍性是基本要求,否则就失去了价值,一致性和可用性之间取一个平衡,大多数web应用,其实并不需要强一致性,因此牺牲一致性而换取可用性。
强一致性:关系型数据库,要求更新过的数据能被后续的访问都能看到
最终一致性:经过一段时间后要求能访问到更新后的数据。
Base 原理
BASE是 Basically Available、 Soft state、 Eventually consistent三个词组的简写,是对CAP中C和A的延伸。CAP、BASE理论是当前在互联网领域非常流行的 NOSQL的理论基础
Basically Available:基本可用,即数据一致性能够基本满足二八定律,即至少保证80%一致性,剩下20%就不要过于纠结。
Soft- state:软状态/柔性事务,即状态可以有一段时间的不同步。在不过分追求数据一致性(强一致性)前提下可考虑软状态策略,例如把数据( State)缓存在客户端一段时间,在一段时间过后,如果客户端没有再次刷新状态的请求的话,就清除此缓存(Soft),这个状态就会消失。
Eventual consistency:最终一致性,即在某一段短时间内允许数据不一致,但经过一段较长时间(这里的一段时间多数是业务能够容忍的延迟),等所有节点上数据的拷贝都整合在一起的时候,数据会最终达到完全一致。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)