logo

为什么通知系统需要消息队列(Notification Queue)?它如何支持 at-least-once 和 exactly-once 投递语义?

Why does a notification system need a Notification Queue, and how can it support at-least-once and exactly-once delivery semantics?

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: hard

分类: system-design, messaging

标签: queue, kafka, rabbitmq, decoupling, buffering, delivery-semantics, at-least-once, exactly-once

参考答案摘要

TL;DR 队列用于 解耦 请求提交与实际发送、削峰填谷并提高系统可扩展性。队列可配置不同投递语义: 至少一次 保证不丢消息但可能重复; 仅一次 避免重复但需要更复杂的幂等与去重机制配合。 为什么需要队列 解耦:Notification Service 不直接做发送,降低耦合。 削峰:高峰期(如秒杀)将突发流量缓冲到队列。 可扩展:Channel Processors 可独立扩容。 可靠性:队列可...

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。

← 返回面试题库

为什么通知系统需要消息队列(Notification Queue)?它如何支持 at-least-once 和 exactly-once 投递语义?

Hardsystem-design

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案