本文档深入探讨了千万Feeds流系统的存储技术,由阿里云高级技术专家木洛在飞天技术汇-存储和数据库专场分享。Feeds流是一种实时的消息推送系统,主要应用于社交网络,如朋友圈,其中消息按照时间线进行排序,允许用户查看好友发布的信息。系统的核心需求包括高效的数据存储、大规模消息处理以及实时同步。
1. **概念介绍**:
- Feeds流定义:实时的消息流,有序且可以扩散至多个接收者。
- 消息排序:关键在于时间线排序和Rank算法,确保信息的及时呈现。
2. **Feeds应用示例**:
- 朋友圈:基于好友关系的消息展示,支持广告插入和个人相册功能。
- 广告系统:定向投放,根据用户画像实现精准营销。
3. **系统架构**:
- 端:负责消息发送和接收。
- 接入层:无状态消息服务器,直接与后台服务交互。
- 后台服务:包含消息系统(持久化存储并同步)和广告系统(个性化投放)。
4. **设计要点**:
- 数据特性:读多写少,简单的弱关系型模型,波峰波谷式的访问模式。
- 存储需求:在线持久化存储,海量数据(PB级别,万亿行),高可靠性。
5. **消息存储**:
- 使用NoSQL解决方案,对比传统关系型数据库,TableStore具备更强大的容量和服务能力。
- TableStore是分布式NoSQL数据库,采用BigTable模型和LSM存储引擎,提供低成本和低延迟的存储。
6. **TableStoreTimeline**:
- 时间线模型:每条消息有唯一的顺序ID(SeqId),支持随机定位和顺序/逆序读取。
- 提供写入和存储统一的模型,兼顾低成本和性能。
7. **数据存储库和同步库**:
- 个人相册:PB级数据低成本长期存储。
- 收件箱:高并发写入和低延迟读取,数据保留周期为半年。
8. **基于Timeline的消息系统优势**:
- 成本效益:PB级数据存储,支持数据生命周期管理。
- 性能:高并发和低延迟,支持实时消息写入和同步。
总结来说,千万Feeds流系统的存储技术主要围绕着如何高效处理海量数据,实现快速排序和实时同步,同时兼顾成本和性能。通过使用TableStore等NoSQL数据库技术,系统能够应对复杂的数据结构和动态的访问模式,满足社交网络中实时消息传输的严苛需求。