导入
系统设计权衡
学习如何在一致性、可用性、延迟和可扩展性之间取得平衡,以设计满足性能需求和业务目标的系统。
...
草图绘制
...
分布式系统中的三个核心权衡
...
持久性和可扩展性增加复杂性,而更简单的设计会限制它们
表格
| 系统类型 | 主要目标 | 优先考虑 | 牺牲 | 示例用例 |
|---|---|---|---|---|
| 关系型数据库 | 数据完整性 | 一致性、持久性 | 可用性、低延迟 | 金融交易 |
| NoSQL 数据库 | 高可用性、可扩展性 | 可用性、可扩展性 | 强一致性 | 用户资料、商品目录 |
| 内存缓存 | 速度 | 低延迟 | 持久性、一致性 | 会话存储 |
| 消息队列 | 解耦服务 | 持久性、可用性 | 低延迟 | 异步任务 |
| 文件存储系统 | 数据持久性 | 持久性、可用性 | 低延迟、复杂性 | 云存储 |
...
节点间协调以保持数据一致
...
在分布式写操作中选择数据安全与响应性
持久性和可用性并不相同。一个系统可以提供“十一位九”(eleven nines)的持久性,但只有“三位九”(three nines)的可用性;即使服务暂时中断,数据依然安全。
Coming soon to support pageflux-note