架构原则

serverless架构原则

万物皆会故障

每种后端架构背后的设计原则都指出:

  1. 任何环节都可能且必将发生故障

  2. 你的系统仍需保持正常运行

  3. 让故障易于修复

如何设计弹性架构

弹性是关键。设计能够承受冲击以及错误的系统。在单个组件失效时仍能作为整体运行。

目标是:

  • 隔离错误:当错误发生时隔离错误,将其限制在小范围内
  • 确保操作可重现:多次触发相同操作必须产生相同结果
  • 持续重试直至成功:错误往往是暂时的,重试后即可消除
  • 使系统可调试:存储足够的信息以便后续追溯
  • 移除无法处理的请求:有时请求无法被处理。确保这些请求不会导致系统崩溃或干扰有效请求
  • 当出现异常时通知工程师:错误可能是正常运行的一部分。当错误过多时,让系统发出警报并指出问题所在

小型、独立、可重放的操作

为实现最高容错性,请确保每个操作遵循以下算法:

  • 获取请求

  • 检查请求是否已处理

  • 若已处理,则完成

  • 如果没有,就按你的方式处理

  • 触发下一步

  • 将请求标记为已处理