kafka consumer将消息从单个分区(可选)分发给消费者

ddrv8njm  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(343)

我有四个在集群下运行的应用程序示例,这意味着我在一个使用者组下有四个使用者。只有一个主题有100个分区。现在我需要使用所有四个使用者从特定分区读取唯一的消息。基本上,我需要将消息从特定分区分发给这四个使用者。如果我使用subscribe,那么我没有从特定分区读取它的控制权;如果我使用assign,那么我将在所有四个使用者之间接收相同的消息。
我同意这是不可能的,通过Kafka,偶然的机会是有任何其他的解决办法,以实现同样的目标。

hfwmuf9z

hfwmuf9z1#

正如您已经提到的,不可能“将消息从特定分区分发给这四个使用者”,因为一个kafka分区最多只能由一个使用者组的一个使用者使用。
kafka文档中给出了参考:“这是通过将主题中的分区分配给使用者组中的使用者来实现的,这样每个分区就只被组中的一个使用者使用。”
作为一种替代方法,我建议您执行以下操作:让kafkaproducer将感兴趣的数据生成到一个单独的主题中,其中包含您喜欢的任意多个分区(以提高吞吐量)。然后有一个专用的应用程序,其中使用者线程的数量与该主题的分区相匹配,并从那里处理数据。

相关问题