作家
登录

现代IM系统中消息推送和存储架构的实现

作者: 来源: 2017-11-23 10:16:23 阅读 我要评论

总结下来,对数据库的请求有如下几点:

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自增。

【编辑推荐】

  1. NAS时代未终结,但对象存储将成为企业存储新标准
  2. IBM发挥存储软硬件组合效应,释放软件定义基本架构之美
  3. 谈一谈容器的持久存储实例
  4. 分布式架构体系生成全局独一序列号的一个思路
  5. 分布式存储体系VeSpace应用处景介绍
【义务编辑:武晓燕 TEL:(010)68476606】

  推荐阅读

  在Linux中怎么使用cron计划任务

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践crond 守护过程是一个完成 cron 功能的后台办事。 没有时光运行敕令?应用 cron 的筹划义务意味着你不消熬>>>详细阅读


本文标题:现代IM系统中消息推送和存储架构的实现

地址:http://www.17bianji.com/lsqh/39173.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)