总结下来,对数据库的请求有如下几点:
1. 表构造设计可以或许知足Timeline模型的功能请求:不请求关系模型,可以或许实现队列模型,并可以或许支撑身成自增的SeqId。
2. 可以或许支撑高并发写和范围读,范围在十万级TPS。
传统架构 vs 现代架构
消息漫游也是基于Timeline,和消息同步独一的差别是,消息漫游请求办事端可以或许对Timeline内的所稀有据进行持久化。
3. 可以或许保存海量数据,百TB级。
4. 可以或许为数据定义生命周期。
阿里云表格存储(TableStore)是基于LSM存储引擎的分布式NoSQL数据库,支撑百万TPS高并发读写,PB级数据存储,数据支撑TTL,可以或许很好的知足以上需求,并且支撑自增列,可以或许异常完美的设计和实现Timeline的物理模型。
架构实现
本章会以一段异常精简的代码,来展示若何基于TableStore实现Timeline模型,并基于Timeline模型进行消息存储和推送。
这篇文┞仿中给出的代码,重要目标是为了演示若何可以或许实现一个精简Timeline的最根本功能。立时我们会推出一个完全的Timeline Library,来将基于Timeline进行消息存储和推送的代码的开辟变得无比简单。
所有示例代码基于如下SDK版本:
表构造设计
以上是创建Timeline表的示例代码,总共须要创建两张表,一张表作为消息同步库。
推送和存储实现
以上是模仿一?群内消息同步和存储的示例代码。
以上是拉取群内汗青消息以及某个群成员进行消息同步的示例代码,重要逻辑在syncMessages函数内。示例代铝闼楝拉撤消息都是大年夜seq_id为0开端,0为TableStore自增列中最小值,所以代表了大年夜最小的一个位点开妒攀拉撤消息,即拉取全量消息。
跋文
这篇文┞仿重要介绍了现代IM体系中消息推送和存储架构的实现,基于逻辑的Timeline模型,我们可以很清楚清楚明了的懂得全部消息推送和存储的架构。基于TableStore,可以异常简单的实现Timeline模型,个中自增列功能,完美的匹配了Timeline模型中所须要的最关键的SeqId自增。
【编辑推荐】
- NAS时代未终结,但对象存储将成为企业存储新标准
- IBM发挥存储软硬件组合效应,释放软件定义基本架构之美
- 谈一谈容器的持久存储实例
- 分布式架构体系生成全局独一序列号的一个思路
- 分布式存储体系VeSpace应用处景介绍
推荐阅读
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践crond 守护过程是一个完成 cron 功能的后台办事。 没有时光运行敕令?应用 cron 的筹划义务意味着你不消熬>>>详细阅读
本文标题:现代IM系统中消息推送和存储架构的实现
地址:http://www.17bianji.com/lsqh/39173.html
1/2 1