备选方案模板
1. 需求介绍
[需求介绍主要描述需求的背景、目标、范围等]
2. 需求分析[5W1H8C]
Who:需求利益干系人。
消息队列系统主要是业务子系统来使用,子系统发送消息或者接收消息。
When:需求使用时间。
当子系统需要发送异步通知的时候,需要使用消息队列系统。
What:需求的产出是什么。
需要开发消息队列系统。
Where:需求的应用场景。
开发环境、测试环境、生产环境都需要部署。
Why:需求需要解决的问题(与需求背景相关)
消息队列系统将子系统解耦,将同步调用改为异步通知。
How:关键业务流程。
消息队列有两大核心功能:业务子系统发送消息给消息队列;业务子系统从消息队列获取消息。
[8C 指的是 8 个约束和限制,即 Constraints,包括性能 Performance、成本 Cost、时间 Time、可靠性 Reliability、安全性 Security、合规性 Compliance、技术性 Technology、兼容性 Compatibility]
性能:需要达到 Kafka 的性能水平。
成本:参考 XX 公司的设计方案,不超过 10 台服务器。
时间:期望 3 个月内上线第一个版本,在两个业务尝试使用。
可靠性:按照业务的要求,消息队列系统的可靠性需要达到 99.99%。
安全性:消息队列系统仅在生产环境内网使用,无需考虑网络安全;如消息中有敏感信息,消息发送方需要自行进行加密,消息队列系统本身不考虑通用的加密。
合规性:消息队列系统需要按照公司目前的 DevOps 规范进行开发。
技术性:目前团队主要研发人员是 Java,最好用 Java 开发。
兼容性:之前没有类似系统,无需考虑兼容性。
3. 复杂度分析
架构模板