[发明专利]一种基于timeline模型的即时通讯多端同步的方法在审
| 申请号: | 202110548966.9 | 申请日: | 2021-05-20 |
| 公开(公告)号: | CN113407622A | 公开(公告)日: | 2021-09-17 |
| 发明(设计)人: | 刘超群 | 申请(专利权)人: | 合肥市智享亿云信息科技有限公司 |
| 主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/22;H04L12/58 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 230000 安徽省*** | 国省代码: | 安徽;34 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 timeline 模型 即时通讯 多端 同步 方法 | ||
本发明涉及计算机通讯技术领域,具体为一种基于timeline模型的即时通讯多端同步的方法,包括如下步骤:步骤一:消息同步库的发送、读取与缓存;步骤二:消息同步库存储到每个用户的消息队列;步骤三:消息同步库的放大存储,本发明采用ElasticSearch开源免费的存储同步消息,极大的节约了成本,同时数据私有化存储,并且ElasticSearch出色的检索数据的性能完美的满足了消息存储与查询的要求,本发明采用的批量存储方式拥有非常好的存储性能,此外主消息体内容只需存储一份,节省了数据存储的空间。
技术领域
本发明涉及计算机通讯技术领域,具体为一种基于timeline模型的即时通讯多端同步的方法。
背景技术
Timeline是一个对消息抽象的逻辑模型,该模型会帮助我们简化对消息同步和存储模型的理解,而消息同步库的设计和实现也是围绕Timeline的特性和需求来展开。Timeline模型是针对消息数据场景所设计的,能够满足消息数据场景对消息保序、海量消息存储、实时同步的特殊需求,同时支持全文检索与多维度组合查询。可以同时应用在IM、Feed流等消息场景的实现上。
TimeLine模型对数据库的要求非常高,主要包括:
1)表结构设计能够满足Timeline模型的功能要求:不要求关系模型,能够实现队列模型;
2)能够支持高并发写和范围读,规模在十万级TPS;
3)能够保存百TB级海量数据;
4)能够为数据定义生命周期。
目前主流实现IM的timeline模型采用tablElasticSearchtore(阿里云表格存储)
现有技术的缺陷和不足:
1)阿里云的表格存储价格在消息量大时价格昂贵,性价比低;
2)如果不购买价格高的套餐,性能差,经常出现请求超时现象;
3)数据保存在第三方,无法私有化保存数据。
鉴于此,我们提出一种基于timeline模型的即时通讯多端同步的方法。
发明内容
为了弥补以上不足,本发明提供了一种基于timeline模型的即时通讯多端同步的方法。
本发明的技术方案是:
一种基于timeline模型的即时通讯多端同步的方法,包括如下步骤:
步骤一:消息同步库的发送、读取与缓存;
步骤二:消息同步库存储到每个用户的消息队列;
步骤三:消息同步库的放大存储。
作为优选的技术方案,步骤一的具体操作为:所有消息发送至Rabbitmq服务器,消息消费程序从消息队列读取,由于群聊会有写放大的问题,此处采用批量插入的方式,群内的一条消息批量写入到N个成员的消息队列里,此处会出现消息的冗余存储,把消息内容存储到redis缓存空间中,插入ElasticSearch中的冗余的只有消息Id,大大减少了消息存储占用的空间。
作为优选的技术方案,同步库存储每一个用户的消息队列,每当有关于该用户的消息就会存储到该用户的消息队列中,为了实现该消息队列,存储的字段包括了sourceUid,此字段标识该消息属于谁的消息,isReaded标识消息是否已读,created标识消息存储的时间戳,msgId标识消息的ID,targetGid标识群消息的id,targetUid单聊时标识对方的id。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥市智享亿云信息科技有限公司,未经合肥市智享亿云信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110548966.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种液相放电辅助气泡静电纺丝装置
- 下一篇:一种防爆喷阀和选矿设备





