无服务器应用的挑战与应对策略
1. 无服务器应用开发的体验与挑战概述
在应用开发中运用无服务器原则后,我们将深入探讨持续开发无服务器应用时会遇到的情况。若尚未在生产环境中运行无服务器系统,这可作为对运行无服务器应用的乐趣与挑战的预览;若已在生产环境中使用,这些内容或许能为当前问题提供见解并给出解决方案。
无服务器技术和系统虽有诸多优势,如基于新技术的无服务器系统易于扩展,能降低开发者和系统管理员的维护成本,但新技术也会带来新的故障模式。接下来,我们将重点探讨无服务器系统在扩展能力方面的故障模式。
2. 系统崩溃(Meltdown)
2.1 系统崩溃的定义与表现
系统崩溃通常指系统突然灾难性地失效,在无服务器系统中,虽不会真正过热,但正常的扩展控制循环可能因未考虑外部因素而过度反应,大量过度配置实例,导致系统完全失效(无法完成工作,仅返回错误)或“有效吞吐量”大幅下降。
系统可能存在两种稳定状态:
| 状态 | 描述 | 示例 |
| — | — | — |
| 正常稳定状态 | 工作正常进行,扩展能有效响应负载变化 | 每秒 2000 个请求由 200 个实例处理,每个实例处理请求耗时 100 毫秒 |
| “崩溃”状态 | 增加容量会因与其他系统组件的交互而降低有用工作的吞吐量 | 每秒 2000 个请求,系统生成 6000 个实例,每个实例完成工作需 5 秒,错误率达 40% |
不幸的是,“崩溃”状态往往在陷入时才被察觉,且在负载大幅低于稳定状态前,系统难以从该状态恢复。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



