我知道,在消费者组中,活动消费者的最大数量是主题的分区数。
在处理速度慢的消费者情况下,最佳做法是什么?如何实现更多的并行性?
一个例子:由生产者每秒生成6个分区和数千条消息的主题。所以我在这个群体中最多有6个消费者。考虑到处理这些消息是复杂的,消费者比生产者慢得多。其结果是,消费者总是在最后的抵消背后,滞后在增加。
在传统的MQ系统中,我们只需添加越来越多的用户来保持最新的状态。
如何使用Kafka来实现这一点,因为在一个组中的总消费者最多是分区的数量?我是否应该:
在这种情况下,最好的做法是什么?
发布于 2019-06-06 16:30:21
在Kafka中,分区是并行的单位。
如果不知道我们确切的用例和需求,就很难提出精确的建议,但是有几种选择。
首先,您应该考虑使用更多的分区。6个分区相对较小,您可以很容易地拥有60个、120个甚至更多的分区(以及相应数量的使用者)。突然间,每个消费者必须做的工作量大大减少了。
此外,如果您的需求允许,您也可以以快速的速度消费,并将记录的处理扩展到许多员工。在这样的解决方案中,很难保持有序,但如果您不需要它,那么您可以考虑它。
我不确定如何在这个场景中通过MQ队列路由消息。如果您的读取速度仍然比写入慢,队列中的数据量将增加,直到您没有磁盘空间为止。
Kafka更好地设计为在您的生产者和消费者之间充当缓冲区,所以只需确保您在主题上有保留限制,这样就可以在消费者方面保持一定的灵活性,而不会丢失数据。
https://stackoverflow.com/questions/56481108
复制相似问题