首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >卡夫卡-处理缓慢的消费者的最佳做法。如何实现更多的并行性?

卡夫卡-处理缓慢的消费者的最佳做法。如何实现更多的并行性?
EN

Stack Overflow用户
提问于 2019-06-06 15:50:14
回答 1查看 3.5K关注 0票数 6

我知道,在消费者组中,活动消费者的最大数量是主题的分区数。

在处理速度慢的消费者情况下,最佳做法是什么?如何实现更多的并行性?

一个例子:由生产者每秒生成6个分区和数千条消息的主题。所以我在这个群体中最多有6个消费者。考虑到处理这些消息是复杂的,消费者比生产者慢得多。其结果是,消费者总是在最后的抵消背后,滞后在增加。

在传统的MQ系统中,我们只需添加越来越多的用户来保持最新的状态。

如何使用Kafka来实现这一点,因为在一个组中的总消费者最多是分区的数量?我是否应该:

  • 将主题配置为有更多的分区,允许每个组有更多的消费者?
  • 将消息从使用者路由到传统MQ队列(但丢失了顺序)?

在这种情况下,最好的做法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-06 16:30:21

在Kafka中,分区是并行的单位。

如果不知道我们确切的用例和需求,就很难提出精确的建议,但是有几种选择。

首先,您应该考虑使用更多的分区。6个分区相对较小,您可以很容易地拥有60个、120个甚至更多的分区(以及相应数量的使用者)。突然间,每个消费者必须做的工作量大大减少了。

此外,如果您的需求允许,您也可以以快速的速度消费,并将记录的处理扩展到许多员工。在这样的解决方案中,很难保持有序,但如果您不需要它,那么您可以考虑它。

我不确定如何在这个场景中通过MQ队列路由消息。如果您的读取速度仍然比写入慢,队列中的数据量将增加,直到您没有磁盘空间为止。

Kafka更好地设计为在您的生产者和消费者之间充当缓冲区,所以只需确保您在主题上有保留限制,这样就可以在消费者方面保持一定的灵活性,而不会丢失数据。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56481108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档