题目15:站内信 / 消息通知系统设计
📊 评分:— | 📅 完成时间:待完成
📝 题目
如果让你设计一个消息通知系统,支持站内信、短信、邮件、App Push,你会怎么设计整体架构?如何保证可靠性、可扩展性和模板化能力?
💬 我的回答
📖 参考答案
一、整体拆分
- 消息接入层
- 模板与变量渲染层
- 路由分发层
- 多渠道发送层
- 回执与状态跟踪层
二、核心能力
- 模板管理
- 多渠道路由
- 失败重试
- 限流与优先级
- 幂等去重
- 发送记录查询
三、典型流程
- 业务系统提交消息请求
- 校验参数、选择模板并渲染变量
- 投递到 MQ 异步处理
- 根据渠道调用短信、邮件、Push、站内信服务
- 回写发送状态并支持重试
四、设计要点
- MQ 解耦削峰
- provider 适配层,便于渠道切换
- 消息记录表便于审计和对账
- 重试要控制次数,避免轰炸用户
🎯 面试标准话术
"通知系统的难点不在发送本身,而在模板、路由、异步解耦、失败重试和渠道治理。设计时我会把接入、模板、分发、发送、回执分层,保证后续扩展新渠道时改动最小。"