此内容已过时。此版本的架构完善的框架现在可在以下位置找到: https://docs.aws.amazon.com/zh_cn/wellarchitected/2022-03-31/framework/reliability.html

REL 4: 您如何在分布式系统中设计交互以预防发生故障?

分布式系统依赖于通信网络实现组件(例如服务器或服务)的互联。尽管这些网络中存在数据丢失或延迟,但是您的工作负载必须可靠运行。分布式系统组件的运行方式不得对其他组件或工作负载产生负面影响。这些最佳实践能够预防故障,并改善平均故障间隔时间 (MTBF)。

资源

AWS re:Invent 2019: Moving to event-driven architectures (SVS308)
AWS re:Invent 2018: Close Loops and Opening Minds: How to Take Control of Systems, Big and Small ARC337 (includes loose coupling, constant work, static stability)
AWS New York Summit 2019: Intro to Event-driven Architectures and Amazon EventBridge (MAD205)
What Is Amazon EventBridge?
What Is Amazon Simple Queue Service?
Amazon EC2: Ensuring Idempotency
The Amazon Builders' Library: Challenges with distributed systems

最佳实践:

改进计划

确定需要哪种类型的分布式系统

  • 确定需要哪种类型的分布式系统: 分布式系统要应对的挑战包括延迟、扩展、了解联网 API、对数据进行集结与解集,以及 Paxos 等算法的复杂性。随着系统规模扩大并呈现出更明显的分布态势,我们现在需要在日常生活中面对过去只在理论中遇到的边缘情况。
    The Amazon Builders' Library: Challenges with distributed systems
  • 实施松散耦合的依赖关系

  • 实施松散耦合的依赖关系: 队列系统、流系统、工作流和负载均衡器等依赖关系是松散耦合的。松散耦合有助于隔离来自其他依赖于它的组件的行为,从而提升弹性和敏捷性
    AWS re:Invent 2019: Moving to event-driven architectures (SVS308)
    What Is Amazon EventBridge?
    What Is Amazon Simple Queue Service?
  • 使所有响应幂等

  • 使所有响应幂等: 幂等服务承诺每个请求只完成一次,因此发起多个相同请求与进行单个请求的效果相同。
  • 持续工作

  • 持续工作: 系统会在负载中存在剧烈快速更改时失败
    AWS re:Invent 2018: Close Loops and Opening Minds: How to Take Control of Systems, Big and Small ARC337 (includes constant work)