Grokking-System-Design
  • 译者
  • 0. 系统设计面试指南
  • 1. 设计类似TinyURL的短链服务
  • 2. 设计 Pastebin
  • 3. 设计Instagram
  • 4. 设计Dropbox
  • 5. 设计Facebook Messager
  • 6. 设计 Twitter
  • 7. 设计YouTube或Netflix
  • 8. 设计输入提示建议
  • 9. 设计API限流器
  • 10. 设计 Twitter 搜索
  • 11. 设计网络爬虫
  • 12. 设计 Facebook 的新闻信息流
  • 13. 设计 Yelp 或附近的朋友
  • 14. 设计 Uber 后端
  • 15. 设计票务大师
  • 16. 附加资源
  • 17. 分布式系统的核心特征
  • 18. 负载均衡
  • 19. 缓存
  • 20. 分片或数据分块
  • 21. 索引
  • 22. 代理
  • 23. 冗余和复制
  • 24. SQL 与 NoSQL
  • 25. CAP 理论
  • 26. 一致性哈希
  • 27. 长轮询 / WebSockets / 服务器发送事件
Powered by GitBook
On this page

23. 冗余和复制

Previous22. 代理Next24. SQL 与 NoSQL

Last updated 2 years ago

是将系统中的关键模块或函数重复,通常使用备份或故障保险的形式,目的是提升系统的可靠性,或者提升系统的实际性能。例如,如果单台服务器上只有一份文件,则该服务器宕机意味着丢失该文件。由于丢失数据通常不是我们期望的,因此我们可以创建重复或冗余的文件解决这个问题。

冗余在消除系统中的单点故障方面起到了重要的作用,并且如果在危急情况下需要备份,冗余可以提供这样的备份。例如,如果我们在生产环境中有一项服务的两个实例在运行,其中一个实例出了故障,则系统可以让另一个实例接管。

是指共享信息以确保冗余资源(例如软硬件组件)之间的一致性,以提升可靠性、或可访问性。

复制在很多数据库管理系统中广泛使用,主服务器和复制服务器之间通常使用主从关系。主服务器获得所有的更新,然后扩散到二级服务器。每台二级服务器发出一条信息表示成功收到了更新,因此允许发送后续更新。

冗余
复制
容错性