Serverless 的“至少一次投递”会带来什么问题?如何设计幂等来保证业务正确?
What problems can at-least-once delivery cause in serverless, and how do you design idempotency to ensure correctness?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: hard
分类: System Design
标签: Reliability, Idempotency
参考答案摘要
答案 事件驱动场景常见“至少一次投递”,意味着函数可能因重试/超时/网络抖动被重复触发,导致重复扣款、重复发货、重复写入等。解决思路是幂等:为每个事件引入唯一 ID(requestId/eventId),在数据库中记录处理状态(去重表/幂等键),写操作使用条件更新/唯一索引;必要时把副作用拆成可重放的步骤,并将外部调用结果缓存或持久化。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。