为什么要为每个渠道设置独立的 Channel Processor(如 Email/SMS/Push/In-app)?它们如何实现独立扩缩容、失败重试以及 DLQ(死信队列)?
Why use separate Channel Processors (Email/SMS/Push/In-app), and how do they enable independent scaling, retries, and Dead Letter Queues (DLQ)?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: hard
分类: system-design, reliability
标签: channel-processor, email, sms, push, in-app, retries, dlq, asynchronous-processing
参考答案摘要
TL;DR 按渠道拆分 processor 可以实现 异步处理 与 独立扩缩容 :每个 processor 只消费自己 topic 的消息并对接对应第三方供应商,失败时用指数退避重试,超过重试次数后将消息送入 DLQ 便于人工审查和补偿。 为什么要拆分 不同渠道吞吐、延迟与失败特性不同(SMS vs Email vs Push)。 可独立扩缩容:某个渠道高峰时只扩容该 processor。 隔离故...
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。