分布式系统 101

主要观点:分布式系统无处不在,如 Facebook、Uber 等,是工作的核心,有相似特征和问题,需描述常见问题及应对方法。
关键信息:

  • 分布式系统定义:分布在多个节点,节点间异步或同步通信,共同实现目标,如 Leslie Lamport 定义。
  • 关键挑战:

    • 可用性:描述系统处理故障和 uptime,以“nines”表示,云服务多有 3 - 5 个“nines”保证,影响可用性的因素有单点故障、有状态、同步通信等,增加可用性的方法有冗余、自动故障转移。
    • 可扩展性:系统处理增加负载的能力,设计时应考虑,与可用性同等重要,限制因素类似可用性,增加可扩展性的方法有异步通信、负载均衡、缓存、微服务架构。
    • 可维护性:系统发布后需维护,观测性(日志、指标、警报、追踪)和测试很重要。
    • 复杂性:系统设计要注意复杂性,避免过度设计,保持简单。
  • 常见部分和权衡:复制可影响可用性和可扩展性,负载均衡可改善两者,迁移到微服务架构影响复杂性,无状态处理服务可解决多个问题。
    重要细节:不同“nines”对应的可用性、停机时间等数据,各挑战的具体影响因素及增加方法,以及相关的具体案例和推荐内容等。
阅读 7
0 条评论