System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于时间窗口的内容流存储方法及装置制造方法及图纸_技高网

一种基于时间窗口的内容流存储方法及装置制造方法及图纸

技术编号:40532933 阅读:12 留言:0更新日期:2024-03-01 13:54
本发明专利技术涉及一种基于时间窗口的内容流存储及装置,属于内容流处理领域,该方法包括:根据用户对内容的操作维度将总内容流消息拆分为多个分内容流消息;预设配置参数,基于时间窗口聚合创建一级缓存及二级缓存;获取当前分内容流消息的内容ID及内容信息存入一级缓存;当为异步模式时,计算当前分内容流消息的任务批次ID,将内容ID及任务批次ID存入二级缓存;将多个任务批次ID顺序存入基于时间窗口聚合的消费任务队列;将消费任务队列中的值顺序出栈并获取对应待执行任务批次ID,在二级缓存中对应的待执行内容ID;读取一级缓存内对应的待执行内容信息,并进行持久化。本发明专利技术能够提升内容流持久化功能的性能和可靠性。

【技术实现步骤摘要】

本专利技术属于内容流处理领域,尤其涉及一种基于时间窗口的内容流存储方法及装置


技术介绍

1、在传统的社区应用中,用户会经常发布分享自己的所见所得,这些内容也会被其他用户看到,用户也会对内容进行点赞、转发、评论等操作,而对应的需要对各个内容的数据进行统计、分析和持久化,最终达到优化社区内容,提升用户体验的目的。

2、当前的处理方案为把包括内容id、作者id、点赞数、评论数、转发数、更新时间、创建时间等内容流信息存储在kafka中,消费服务从kafka中拉取消息,通过逐条解析内容流信息,同步完成数据的持久化。

3、但是由于数据量太大,消费服务在处理内容流信息的时候,不能针对不同的内容变更类型进行区别处理,会影响数据持久化的效率和稳定性,最终影响社区内容和用户体验;并且当前的方案的消息均为同步处理,由于数据量大、并发高,处理逻辑复杂,所以在数据持久化的时候会给数据库带来很大的压力;另外缺少一个统一的配置中心和解析规则来自定义配置同步/异步消息模块的设计,可通过该配置中心设置异步类型和类型阈值,达到同步和异步数据持久化的平滑过渡,兼容所有消息类型场景的处理。


技术实现思路

1、鉴于以上现有技术的不足,专利技术的目的在于提供一种基于时间窗口的内容流存储方法及装置。

2、本专利技术的第一方面提供一种基于时间窗口的内容流存储方法,包括:

3、s1:根据用户对内容的操作维度将总内容流消息拆分为多个分内容流消息;

4、s2:预设置内容流存储的配置参数,并基于时间窗口聚合创建一级缓存及二级缓存;

5、s3:获取当前所述分内容流消息的内容id及内容信息,以key-value方式将所述内容id及所述内容信息存入所述一级缓存;

6、s4:当所述配置参数中的存储方式为异步模式时,计算当前所述分内容流消息的任务批次id,并以key-value方式将所述内容id及所述任务批次id存入所述二级缓存;

7、s5:将多个分内容流消息的任务批次id顺序存入基于时间窗口聚合的消费任务队列;

8、s6:将所述消费任务队列中的值顺序出栈,通过出栈的值对应的待执行任务批次id,在二级缓存中获取当前聚合时间窗口内对应的待执行内容id;

9、s7:通过所述待执行内容id以key-value方式读取一级缓存内对应的待执行内容信息,并对所述待执行内容信息进行持久化。

10、进一步的,s1还包括:

11、对待拆分的总内容流消息进行合法性校验。

12、进一步的,步骤s2中的所述配置参数至少包括存储方式,所述配置参数还包括业务名称、主题名称、持久化类型、用户操作类型、聚合时间窗口及开关维度。

13、进一步的,步骤s3中,将所述内容id及所述内容信息存入所述一级缓存时,以内容id为key,以内容信息为value。

14、进一步的,步骤s4中,所述任务批次id的计算式为:

15、

16、其中,pid为任务批次id,ξm为内容变更时间戳,ξn为固定时间戳,t为聚合时间窗口时长。

17、进一步的,步骤s4中,多个分内容流消息对应的任务批次id符合递增规律。

18、进一步的,步骤s4还包括:

19、当所述配置参数中的存储方式为同步模式时,则直接在一级缓存中,通过内容id读取对应的内容信息,并对读取到的内容信息进行持久化。

20、本专利技术的第二方面提供一种基于时间窗口的内容流存储装置,包括:

21、拆分模块:用于根据用户对内容的操作维度将总内容流消息拆分为多个分内容流消息;

22、预启动模块:用于预设置内容流存储的配置参数,创建并启动基于时间窗口聚合的一级缓存及二级缓存;

23、一级存储模块:用于获取当前所述分内容流消息的内容id及内容信息,将所述内容id及所述内容信息存入所述一级缓存;

24、二级存储模块:用于当所述配置参数中的存储方式为异步模式时,计算当前所述分内容流消息的任务批次id,并将所述内容id及所述任务批次id存入所述二级缓存;

25、消费任务队列模块:用于接收多个分内容流消息的任务批次id顺序存入,将所述消费任务队列中的值顺序出栈;

26、读取持久化模块:用于通过出栈的值对应的待执行任务id,在二级缓存中当前聚合时间窗口内对应的待执行内容id,通过所述待执行内容id以key-value方式读取一级缓存内对应的待执行内容信息,还用于对所述待执行内容信息进行持久化。

27、本专利技术的第三方面提供一种基于时间窗口的内容流存储设备,包括:

28、存储器和至少一个处理器,所述存储器中存储有指令;

29、至少一个所述处理器调用所述存储器中的所述指令,以使得文档数据库审计设备执行如以上任一项所述的一种基于时间窗口的内容流存储方法。

30、本专利技术第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现如以上任一项所述的一种基于时间窗口的内容流存储方法。

31、本专利技术有益效果如下:

32、本专利技术提供的一种基于时间窗口的内容流存储方法及装置,首先通过用户对内容的不同操作为维度进行削峰,拆分为不同的小topic,缓解第一波数据处理压力,并做简单拆分,为后续分布式计算和数据持久化做准备;提供了一套通用的支持自定义配置同步/异步消息模块的配置方式和解析规则,兼容所有消息类型场景。通过修改配置方式紧急暂停、启动持久化服务,支持动态配置化;另外还引入了时间窗口和多级缓存的概念,通过时间窗口的持续偏移,把需要更新的内容id与任务批次id相关联,能够灵活支持不同类型的内容流消息的持久化。聚合时间窗口的设计支持动态配置化,修改后不会影响最终数据的一致性。

本文档来自技高网...

【技术保护点】

1.一种基于时间窗口的内容流存储方法,其特征在于,包括:

2.根据权利要求1所述的一种基于时间窗口的内容流存储方法,其特征在于,S1还包括:

3.根据权利要求1所述的一种基于时间窗口的内容流存储方法,其特征在于,步骤S2中的所述配置参数至少包括存储方式,所述配置参数还包括业务名称、主题名称、持久化类型、用户操作类型、聚合时间窗口及开关维度。

4.根据权利要求1所述的一种基于时间窗口的内容流存储方法,其特征在于,步骤S3中,将所述内容ID及所述内容信息存入所述一级缓存时,以内容ID为key,以内容信息为value。

5.根据权利要求1所述的一种基于时间窗口的内容流存储方法,其特征在于,步骤S4中,所述任务批次ID的计算式为:

6.根据权利要求5所述的一种基于时间窗口的内容流存储方法,其特征在于,步骤S4中,多个分内容流消息对应的任务批次ID符合递增规律。

7.根据权利要求1所述的一种基于时间窗口的内容流存储方法,其特征在于,步骤S4还包括:

8.一种基于时间窗口的内容流存储装置,其特征在于,包括:</p>

9.一种基于时间窗口的内容流存储设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现如权利要求1至7任一项所述的一种基于时间窗口的内容流存储方法。

...

【技术特征摘要】

1.一种基于时间窗口的内容流存储方法,其特征在于,包括:

2.根据权利要求1所述的一种基于时间窗口的内容流存储方法,其特征在于,s1还包括:

3.根据权利要求1所述的一种基于时间窗口的内容流存储方法,其特征在于,步骤s2中的所述配置参数至少包括存储方式,所述配置参数还包括业务名称、主题名称、持久化类型、用户操作类型、聚合时间窗口及开关维度。

4.根据权利要求1所述的一种基于时间窗口的内容流存储方法,其特征在于,步骤s3中,将所述内容id及所述内容信息存入所述一级缓存时,以内容id为key,以内容信息为value。

5.根据权利要求1所述的一种基于时间窗口的内容流存储方...

【专利技术属性】
技术研发人员:李鲲鹏
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1