kafka消费者处理慢的情况下如何提高消息处理速度?不允许增加分区

发布于 2021-12-05 22:02:32 字数 286 浏览 758 评论 6

如题.最近的一个面试题,说是考虑kafka理论特性.具体要求我可能有理解错误.如果各位有研究一眼看出是什么问题,谢谢给个提示.

我搜索了下,提高消费性能的有:

增加分区个数(增加消费者并行数)[不允许];

消费者使用多线程;如果消息处理是CPU密集的加多线程也没用啊;

或许我理解有问题?

换个问题?

生产者1秒生成1W消息.然而此时全部消费者1s只能消费5000,消息处理是纯CPU计算,问:在不添加分区的情况下如何消息处理速度?

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

凡尘雨 2021-12-08 04:54:56

我现在的消费者信息好久好久才消费,消费信息缓慢,不知道这是什么问题,机器本身的负载低,磁盘空间也是有的。

成熟稳重的好男人 2021-12-08 00:03:37

嗯,不要太在意这个问题.是我对之前面试题的理解的阐述.我主要还是想咨询大家在消息消费性能方面的理解

倾城泪 2021-12-07 20:55:42

在提高fetch性能,增加消费者线程数以外是否还有提升的地方

甜扑 2021-12-07 20:00:34

提供一个小白点的思路,文中说“全部消费者1s只能消费5000”,有没有看看为什么只能消费5000?能否通过设置让它变大呢?比如以前拉取线程只设置为5,现在改为10试试。

柳若烟 2021-12-07 06:45:01

非常感谢.提高消息的pull性能也是一方面的考虑.

不再见 2021-12-07 01:55:14

他这个问题问的核心是消费速度吧,不是处理能力,应该假设处理能力不是瓶颈,否则这个问题就是如何高并发下提升处理能力的问题了。KAFKA本质是拉取模型的消息队列

一般来说有几类

1.增加分区(题上不让)

2.关闭autocommit(偏移量手工提交可以按需减少分区偏移量的更新,有利于提升消费速度)

3.增加单次拉取消息的大小(大量消息的场景下可减少拉取消息的次数)

比较另类的:

1.如果不考虑数据一致性,可以将key值平均一下,这样每个分区的消息大小都差不多,有利于负载均衡

2.如果没有开启压缩,最好开启压缩(需要重启集群),可大大提高通信效率,有得消费速度提升

 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文