System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种提升Kafka追赶读性能的方法和装置制造方法及图纸_技高网

一种提升Kafka追赶读性能的方法和装置制造方法及图纸

技术编号:40958441 阅读:3 留言:0更新日期:2024-04-18 20:35
本发明专利技术公开了一种提升Kafka追赶读性能的方法和装置,方法包括处理主题消息读取请求,预测Kafka将会读取的消息数据,从磁盘批量读取消息到内存区,从内存读取消息返回消息应答,装置包括接收模块、处理模块、获取模块、应答模块、磁盘存储模块和内存模块,本发明专利技术的有益效果为:过标记等方法识别Kafka顺序追赶读行为,预测Kafka将会读取的消息数据,触发批量读取消息到Kafka缓存中,增加了Kafka追赶读缓存命中率,同时批量读取多条消息既能减轻IO操作压力,又能减少Kafka IO线程数的使用,解决了Kafka过多追赶读行为导致集群性能下降和IO线程堵塞导致写入失败问题。

【技术实现步骤摘要】

本专利技术涉及it,尤其涉及一种提升kafka追赶读性能的方法和装置。


技术介绍

1、kafka是由apache软件基金会开发的一个开源流处理平台,是大数据家族的重要成员,具备高吞吐的特性,是一种高吞吐量的分布式发布订阅消息系统,现代互联网大数据中,收集海量的用户行为数据,行为日志等,这些海量的数据的传递和汇聚可以通过kafka完成。

2、kafka出现追赶读时,由于需要读取的数据没有缓存在内存里,需要从磁盘读取大量冷数据,占用io线程和磁盘io资源,过多追赶读会降低集群写入吞吐量,甚至会导致线程堵塞,数据写入大量失败。


技术实现思路

1、本部分的目的在于概述本专利技术的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和专利技术名称中可能会做些简化或省略以避免使本部分、说明书摘要和专利技术名称的目的模糊,而这种简化或省略不能用于限制本专利技术的范围。

2、鉴于上述的问题,提出了本专利技术。

3、为解决上述技术问题,本专利技术提供如下技术方案:一种提升kafka追赶读性能的方法,包括以下步骤:

4、s1,处理主题消息读取请求;

5、s2,预测kafka将会读取的消息数据,从磁盘批量读取消息到内存区。

6、s3,从内存读取消息返回消息应答。

7、作为本专利技术所述一种提升kafka追赶读性能的方法的一种优选方案,其中,s1步骤包括:

8、s11,判断消息请求是否击中缓存层的数据,未击中则判断是否命中预读标记m;

9、s12,若消息请求未命中预读标记,从磁盘读取消息返回内存区,给下一条消息标记m。

10、作为本专利技术所述一种提升kafka追赶读性能的方法的一种优选方案,其中,s2步骤包括:若消息请求命中预读标记m,则批量读取多条消息到内存。

11、作为本专利技术所述一种提升kafka追赶读性能的方法的一种优选方案,其中:所述多条消息为标记消息以及标记消息后面数十条消息。

12、作为本专利技术所述一种提升kafka追赶读性能的方法的一种优选方案,其中:s3中从内存读取消息前唤醒请求等待线程。

13、基于上述一种提升kafka追赶读性能的方法,本专利技术还提供一种提升kafka追赶读性能的装置,包括:

14、接收模块,用于接收读取消息请求;

15、处理模块,用于处理主题消息读取请求;

16、获取模块,用于获取消息返回内存区;

17、应答模块,用于将获取的消息返回消息应答;

18、磁盘存储模块,用于存储消息数据;

19、内存模块,用于提供快速的读写访问,缓存消息。

20、作为本专利技术所述一种提升kafka追赶读性能的装置的一种优选方案,其中,所述处理模块包括:

21、标记单元,用于在消息读取请求未命中缓存缓存和标记m时对下一个消息进行标记;

22、判断单元,用于判断消息读取请求是否命中缓存和标记m。

23、作为本专利技术所述一种提升kafka追赶读性能的装置的一种优选方案,其中,所述获取模块包括:

24、单条消息读取单元,用于读取单条消息到内存区;

25、批量消息读取单元,用于批量读取多条消息到内存区。

26、作为本专利技术所述一种提升kafka追赶读性能的装置的一种优选方案,其中:所述多条消息为标记消息以及标记消息后面数十条消息。

27、作为本专利技术所述一种提升kafka追赶读性能的装置的一种优选方案,其中:应答模块返回消息应答前唤醒请求等待线程。

28、本专利技术的有益效果:通过标记等方法识别kafka顺序追赶读行为,预测kafka将会读取的消息数据,触发批量读取消息到kafka缓存中,增加了kafka追赶读缓存命中率,同时批量读取多条消息既能减轻io操作压力,又能减少kafka io线程数的使用,解决了kafka过多追赶读行为导致集群性能下降和io线程堵塞导致写入失败问题。

本文档来自技高网...

【技术保护点】

1.一种提升Kafka追赶读性能的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种提升Kafka追赶读性能的方法,其特征在于,S1步骤包括:

3.根据权利要求2所述的一种提升Kafka追赶读性能的方法,其特征在于,S2步骤包括:若消息请求命中预读标记m,则批量读取多条消息到内存。

4.根据权利要求3所述的一种提升Kafka追赶读性能的方法,其特征在于:所述多条消息为标记消息以及标记消息后面数十条消息。

5.根据权利要求1所述的一种提升Kafka追赶读性能的方法,其特征在于:S3中从内存读取消息前唤醒请求等待线程。

6.一种提升Kafka追赶读性能的装置,其特征在于,包括:

7.根据权利要求6所述的一种提升Kafka追赶读性能的装置,其特征在于,所述处理模块包括:

8.根据权利要求7所述的一种提升Kafka追赶读性能的装置,其特征在于,所述获取模块包括:

9.根据权利要求8所述的一种提升Kafka追赶读性能的装置,其特征在于:所述多条消息为标记消息以及标记消息后面数十条消息

10.根据权利要求6至9任一项所述的一种提升Kafka追赶读性能的装置,其特征在于:应答模块返回消息应答前唤醒请求等待线程。

...

【技术特征摘要】

1.一种提升kafka追赶读性能的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种提升kafka追赶读性能的方法,其特征在于,s1步骤包括:

3.根据权利要求2所述的一种提升kafka追赶读性能的方法,其特征在于,s2步骤包括:若消息请求命中预读标记m,则批量读取多条消息到内存。

4.根据权利要求3所述的一种提升kafka追赶读性能的方法,其特征在于:所述多条消息为标记消息以及标记消息后面数十条消息。

5.根据权利要求1所述的一种提升kafka追赶读性能的方法,其特征在于:s3中从内存读取消息前唤醒请...

【专利技术属性】
技术研发人员:汤俊健廖少波冯伟佳吴小文
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1