Skip to content

Latest commit

 

History

History
53 lines (38 loc) · 2.92 KB

大型系统设计.md

File metadata and controls

53 lines (38 loc) · 2.92 KB

常见系统设计架构图

  1. 性能与可扩展性

    • 每一个服务封装成独立的模块(使用Docker打包镜像)
    • 使用负载均衡技术,当请求增加时,动态实例化容器
  2. 可用性与一致性

    • 一致性——每次访问系统都能获得最新数据但可能会收到错误响应
    • 可用性——每次访问都能收到非错响应,但不保证获取到最新数据
    • 分区容错性——在任意分发网络故障情况情况下系统仍能继续运行

CP ─ 一致性和分区容错性 等待分区节点的响应可能会导致延时错误。如果你的业务需求需要原子读写,CP 是一个不错的选择。

AP ─ 可用性与分区容错性 响应节点上可用数据的最近版本可能并不是最新的。当分区解析完后,写入(操作)可能需要一些时间来传播。

如果业务需求允许最终一致性,或当有外部故障时要求系统继续运行,AP 是一个不错的选择。

  1. 内容分发网络(CDN)

    内容分发网络(CDN)是一个全球性的代理服务器分布式网络,它从靠近用户的位置提供内容。通常,HTML/CSS/JS,图片和视频等静态内容由 CDN 提供,虽然亚马逊 CloudFront 等也支持动态内容。CDN 的 DNS 解析会告知客户端连接哪台服务器。

    将内容存储在 CDN 上可以从两个方面来提供性能:

    • 从靠近用户的数据中心提供资源
    • 通过 CDN 你的服务器不必真的处理请求
  2. 负载均衡器 负载均衡

    负载均衡器的作用

    • 防止请求进入不好的服务器
    • 防止资源过载
    • 帮助消除单一的故障点
  3. 反向代理

可缩放的系统构架设计

  1. 数据库 ACID原则
  • 原子性 - 每个事务内部所有操作要么全部完成,要么全部不完成。
  • 一致性 - 任何事务都使数据库从一个有效的状态转换到另一个有效状态。
  • 隔离性 - 并发执行事务的结果与顺序执行事务的结果相同。
  • 持久性 - 事务提交后,对系统的影响是永久的。
  1. 通信 OSI七层模型 OSI七层模型

真实架构

  • Twitter Twitter timelines at scale