标准答案
- 业务服务发布通知意图或事件,通知系统生成带业务幂等键的任务,避免重复请求直接调用短信或邮件。
- 模板、变量校验、语言、用户偏好和退订规则在投递前处理,敏感内容按渠道能力做脱敏。
- 每个渠道有独立限流、并发、超时和重试策略,高优先级通知应与营销类通知隔离资源。
- 记录任务状态、渠道响应、重试次数、最终结果和 Trace ID,支持用户查询、运营补发和故障排查。
题目解析
通知的核心难点是“至少一次投递”与“用户不应收到重复内容”之间的平衡。业务幂等键和渠道回执要共同决定去重策略。
不同渠道的失败语义不同:短信可能有供应商回执延迟,推送可能设备离线,邮件可能被拒收,不能用同一重试策略。
常见误区
- 业务接口同步等待所有渠道返回,拖慢核心流程。
- 把营销和验证码放在同一队列,低优先级流量挤占关键通知。
- 只记录是否调用成功,不记录用户是否最终可见或渠道是否拒收。