背景
收件箱是非常常见的功能。收件箱中一般会包括多种消息:批量向用户推送的、用户自己订阅的、系统通知等等。如何设计消息的存储、查询机制,成为影响用户体验、控制成本的重要课题。
包含功能
- 支持运营人员针对批量用户群发消息
- 支持用户接收订阅栏目消息
- 接收系统事件向用户发送消息
- 支持用防护浏览查看消息内容
需求
- 明确系统用户
- 系统功能点集合
- 数据结构、数据模型,选择合适的缓存机制。设计高性能查询机制;
- 各类消息如何高性能节省存储空间存储
- 邮箱设计,用户高性能查询
考虑因素
技术选型
- Netty:满足大量连接数、同时支持全双工通信,不选择传统IO,选择Netty
- 协议解析:客户端和服务端连接的方式
- 常见的是HTTP,但http更多服务于浏览器
- RPC也是不错的
- 分布式方案:实现大量用户的连接