
如果我有一个Kafka主题,其中我只有一个partitionP0,而生产者使用不同的keysk1,k2将数据写入partitionP1。假设1-1,1-2是关键字k1的值,2-1,2-2,2-3是关键字k2的值。
我现在在主题的partitionP0中有1-1,1-2,2-1,2-2,2-3
我是否可以有两个不同的consumersC1,C2侦听主题中的partitionP0并读取与C1中不同keys...as关联的值C1仅读取k1的值,而C2仅读取K2的值?
发布于 2020-09-25 21:54:37
一个主题的单个分区只能被同一消费者组中的一个消费者实例消费。因此,如果您的使用者C1和C2都希望从同一分区读取数据,则它们需要具有不同的consumerGroups。
遵循该规则,您可以让C1使用key K1过滤掉消息,让C2使用key K2过滤掉消息。
另一种选择是(只有在您能够控制生产者的情况下)编写一个自定义分区程序,它将所有具有关键K1的消息写入Partition0,将所有具有关键K2的消息写入Partition1。这样,您就可以让两个具有相同consumerGroup的使用者实例/线程并行地读取两个分区。
https://stackoverflow.com/questions/64065431
复制相似问题