Skip to content

如何设计一个延迟消息系统 ​

题目 ​

如何设计一个延迟消息系统?

参考答案 ​

常见方案:

  • 时间轮
  • Redis ZSet
  • MQ 延迟消息 / 死信队列

关键点:

  • 到期投递精度
  • 消息可靠性
  • 扫描成本
  • 失败重试

回答展开 ​

  • MQ 题最好分成生产端、Broker、消费端三段来讲。
  • 如果涉及幂等、重试、顺序性,重点说明业务语义而不是只看消息语义。
  • 如果是 Kafka,还可以带上分区、副本、ISR 这些关键字。

实际场景 ​

这些都是典型系统设计题。比如秒杀要解决削峰和防超卖,排行榜要解决实时排序,通知系统要解决模板、多渠道和失败重试。

努力工作 享受生活