Logo
Section 1 / 4

系统设计权衡

学习如何在一致性、可用性、延迟和可扩展性之间取得平衡,以设计满足性能需求和业务目标的系统。

导入

系统设计权衡

学习如何在一致性、可用性、延迟和可扩展性之间取得平衡,以设计满足性能需求和业务目标的系统。

...
草图绘制
...
分布式系统中的三个核心权衡
...
持久性和可扩展性增加复杂性,而更简单的设计会限制它们

表格

系统类型主要目标优先考虑牺牲示例用例
关系型数据库数据完整性一致性、持久性可用性、低延迟金融交易
NoSQL 数据库高可用性、可扩展性可用性、可扩展性强一致性用户资料、商品目录
内存缓存速度低延迟持久性、一致性会话存储
消息队列解耦服务持久性、可用性低延迟异步任务
文件存储系统数据持久性持久性、可用性低延迟、复杂性云存储
...
节点间协调以保持数据一致
...
在分布式写操作中选择数据安全与响应性

持久性和可用性并不相同。一个系统可以提供“十一位九”(eleven nines)的持久性,但只有“三位九”(three nines)的可用性;即使服务暂时中断,数据依然安全。

Coming soon to support pageflux-note

系统设计中的安全

扩展权衡:何时缓存、排队、复制或分片