System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 消息记录的管理方法及系统技术方案_技高网

消息记录的管理方法及系统技术方案

技术编号:41403905 阅读:6 留言:0更新日期:2024-05-20 19:29
本申请公开了一种消息记录的管理方法及系统。其中,该方法包括:接收目标客户端发送的第一消息,并生成第一消息对应的第一消息ID,确定预设值与第一消息ID的差值为第一消息对应的第一逆序消息ID;获取第一消息所属会话的第一会话ID,生成第一会话ID对应的第一会话ID哈希值;将第一消息存储至Hbase数据库中与第一会话ID哈希值对应的第一分区,依据第一会话ID哈希值、第一会话ID和第一逆序消息ID生成第一行键;响应于目标客户端的消息查询请求,从Hbase数据库中查询目标数量条目标消息并将其反馈至目标客户端。本申请解决了相关技术中HBase数据库无法高效提供针对消息记录的分页查询的技术问题。

【技术实现步骤摘要】

本申请涉及数据存储和查询,具体而言,涉及一种消息记录的管理方法及系统


技术介绍

1、随着信息技术的发展,数据量呈现爆炸式增长,传统关系数据库已无法满足日益增长的数据量存储和查询的需求。

2、在即时通信应用中,用户通常会有检索历史聊天记录的诉求,常见的场景包括:遍历某个会话的聊天记录、根据关键词检索上下文聊天记录。hbase作为一种高可靠性、高性能读写能力、面向列、可伸缩的分布式存储系统,在即时通信应用的聊天记录检索方面有着越来越广泛的应用。然而,与传统关系数据库不同,hbase无法提供类似于关系数据的存储过程分页。目前,针对于hbase的改进方案包括使用hbased过滤器、或者使用hbase的辅助索引(如phoenix数据库),然而它们针对历史聊天记录的检索在性能上或实现成本上仍有不足。

3、针对上述的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本申请实施例提供了一种消息记录的管理方法及系统,以至少解决相关技术中hbase数据库无法高效提供针对消息记录的分页查询的技术问题。

2、根据本申请实施例的一个方面,提供了一种消息记录的管理方法,包括:接收目标客户端发送的第一消息,并依据消息接收时间戳生成第一消息对应的第一消息id,确定预设值与第一消息id的差值为第一消息对应的第一逆序消息id;获取第一消息所属会话的第一会话id,并生成第一会话id对应的第一会话id哈希值;将第一消息存储至hbase数据库中与第一会话id哈希值对应的第一分区,并依据第一会话id哈希值、第一会话id和第一逆序消息id生成第一消息对应的第一行键,其中,hbase数据库中的所有消息均依据行键从小到大进行排序;响应于目标客户端发送的消息查询请求,从hbase数据库中查询与消息查询请求对应的目标数量条目标消息,并将目标消息反馈至目标客户端。

3、可选地,接收目标客户端发送的第一消息,并依据消息接收时间戳生成第一消息对应的第一消息id,确定预设值与第一消息id的差值为第一消息对应的第一逆序消息id,包括:以长连接方式与目标客户端建立会话连接;接收目标客户端发送的第一消息,并利用snowflake算法依据消息接收时间戳生成第一消息对应的第一消息id;确定snowflake算法可生成的消息id的最大值为预设值,并确定预设值与第一消息id的差值为第一消息对应的第一逆序消息id。

4、可选地,生成第一会话id对应的第一会话id哈希值,包括:利用目标哈希函数生成第一会话id对应的第一会话id哈希值,其中,目标哈希函数包括:murmurhash函数。

5、可选地,将第一消息存储至hbase数据库中与第一会话id哈希值对应的第一分区,并依据第一会话id哈希值、第一会话id和第一逆序消息id生成第一消息对应的第一行键,包括:确定hbase数据库的分区数,并对第一会话id哈希值与分区数进行模运算,将运算结果作为分区编号,将第一消息存储至hbase数据库中分区编号对应的第一分区;将第一会话id哈希值、第一会话id和第一逆序消息id依次进行拼接,得到第一消息对应的第一行键。

6、可选地,响应于目标客户端发送的消息查询请求,从hbase数据库中查询与消息查询请求对应的目标数量条目标消息,并将目标消息反馈至目标客户端,包括:响应于目标客户端发送的消息遍历查询请求,确定目标客户端单页可显示消息的最大数量n;以接收到的最新消息对应的行键为查询起始条件,以目标数量n+1为查询范围,从hbase数据库中查询排序最前的n+1条目标消息,并将查询到的前n条目标消息反馈至目标客户端。

7、可选地,响应于目标客户端的向下翻页操作,以上一次查询到的n+1条目标消息中的最后一条消息对应的行键为查询起始条件,以n+1为查询范围,在hbase数据库中向后依序查询n+1条目标消息,并将查询到的前n条目标消息反馈至目标客户端。

8、可选地,将第一消息存储至分布式搜索分析引擎,其中,分布式搜索分析引擎包括:elasticsearch引擎。

9、可选地,响应于目标客户端发送的消息查询请求,从hbase数据库中查询与消息查询请求对应的目标数量条目标消息,并将目标消息反馈至目标客户端,包括:响应于目标客户端发送的基于关键字的消息查询请求,利用分布式搜索分析引擎查询与关键字对应的第二消息;确定目标客户端单页可显示消息的最大数量n,以第二消息对应的行键为查询起始条件,以为查询范围,在hbase数据库中向前逆序查询条目标消息,并以第二消息对应的行键为查询起始条件,以为查询范围,在hbase数据库中向后依序查询条目标消息;将向前查询得到的条目标消息中排序靠后的条目标消息和向后查询得到的条目标消息中排序靠前的条目标消息反馈至目标客户端,其中,第二消息不重复反馈。

10、可选地,响应于目标客户端的向上翻页操作,以上一次向前查询到的目标消息中最靠前的消息对应的行键为查询起始条件,以n+1为查询范围,在hbase数据库中向前逆序查询n+1条目标消息,并将查询到的排序靠后的n条目标消息反馈至目标客户端;响应于目标客户端的向下翻页操作,以上一次向后查询到的目标消息中最靠后的消息对应的行键为查询起始条件,以n+1为查询范围,在hbase数据库中向后依序查询n+1条目标消息,并将查询到的排序靠前的n条目标消息反馈至目标客户端。

11、可选地,将第一消息缓存至远程字典服务数据库;周期性将远程字典服务数据库中缓存的所有消息存储至mysql数据库。

12、根据本申请实施例的另一方面,还提供了一种消息记录的管理系统,包括:接入层、业务层和数据层,数据层包括:hbase数据库,其中,接入层,用于接收目标客户端发送的第一消息,并将第一消息发送至业务层;接收目标客户端发送的消息查询请求,并将消息查询请求发送至业务层;将业务层反馈的目标消息反馈至目标客户端;业务层,用于依据消息接收时间戳生成第一消息对应的第一消息id,并确定预设值与第一消息id的差值为第一消息对应的第一逆序消息id,获取第一消息所属会话的第一会话id,并生成第一会话id对应的第一会话id哈希值;将消息查询请求发送至数据层;将数据层反馈的目标消息反馈至接入层;数据层,用于将第一消息存储至hbase数据库中与第一会话id哈希值对应的第一分区,并依据第一会话id哈希值、第一会话id和第一逆序消息id生成第一消息对应的第一行键,其中,hbase数据库中的所有消息均依据行键从小到大进行排序;响应于消息查询请求,从hbase数据库中查询与消息查询请求对应的目标数量条目标消息,并将目标消息反馈至业务层。

13、根据本申请实施例的另一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的计算机程序,其中,非易失性存储介质所在设备通过运行该计算机程序执行上述的消息记录的管理方法。

14、根据本申请实施例的另一方面,还提供了一种电子设备,该电子设备包括:存储器和处理器,其中,存储器中存储有计算机程序,处本文档来自技高网...

【技术保护点】

1.一种消息记录的管理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,接收目标客户端发送的第一消息,并依据消息接收时间戳生成所述第一消息对应的第一消息ID,确定预设值与所述第一消息ID的差值为所述第一消息对应的第一逆序消息ID,包括:

3.根据权利要求1所述的方法,其特征在于,生成所述第一会话ID对应的第一会话ID哈希值,包括:

4.根据权利要求3所述的方法,其特征在于,将所述第一消息存储至Hbase数据库中与所述第一会话ID哈希值对应的第一分区,并依据所述第一会话ID哈希值、所述第一会话ID和所述第一逆序消息ID生成所述第一消息对应的第一行键,包括:

5.根据权利要求1所述的方法,其特征在于,响应于所述目标客户端发送的消息查询请求,从所述Hbase数据库中查询与所述消息查询请求对应的目标数量条目标消息,并将所述目标消息反馈至所述目标客户端,包括:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,响应于所述目标客户端发送的消息查询请求,从所述Hbase数据库中查询与所述消息查询请求对应的目标数量条目标消息,并将所述目标消息反馈至所述目标客户端,包括:

9.根据权利要求8所述的方法,其特征在于,所述方法还包括:

10.根据权利要求1所述的方法,其特征在于,所述方法还包括:

11.一种消息记录的管理系统,其特征在于,包括:接入层、业务层和数据层,所述数据层包括:Hbase数据库,其中,

12.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的计算机程序,其中,所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至10中任意一项所述的消息记录的管理方法。

13.一种电子设备,其特征在于,包括:存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被配置为通过所述计算机程序执行权利要求1至10中任意一项所述的消息记录的管理方法。

...

【技术特征摘要】

1.一种消息记录的管理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,接收目标客户端发送的第一消息,并依据消息接收时间戳生成所述第一消息对应的第一消息id,确定预设值与所述第一消息id的差值为所述第一消息对应的第一逆序消息id,包括:

3.根据权利要求1所述的方法,其特征在于,生成所述第一会话id对应的第一会话id哈希值,包括:

4.根据权利要求3所述的方法,其特征在于,将所述第一消息存储至hbase数据库中与所述第一会话id哈希值对应的第一分区,并依据所述第一会话id哈希值、所述第一会话id和所述第一逆序消息id生成所述第一消息对应的第一行键,包括:

5.根据权利要求1所述的方法,其特征在于,响应于所述目标客户端发送的消息查询请求,从所述hbase数据库中查询与所述消息查询请求对应的目标数量条目标消息,并将所述目标消息反馈至所述目标客户端,包括:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

7.根据权利要求1...

【专利技术属性】
技术研发人员:刘曼阮宜龙张云龙
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1