【发布时间】:2014-07-30 13:33:54
【问题描述】:
我正在尝试使用 Kafka 0.8.1.1 了解可能的消费者模式。让我们忽略复制,因为我不相信它会影响这些模式。我为所有测试运行了命令行控制台使用者。
你能确认我的理解是正确的吗?
1) 一个主题,多个分区 m,多个消费者 n,m=>n,未定义组。
在这种情况下,每个消费者都会收到关于该主题的每条消息。
2) 一个主题,多个分区 m,多个消费者 n,其中 m LESS THAN n ,未定义组。
同样的行为。每个消费者都会收到关于该主题的每条消息。
3) 一个主题,多个分区 m,多个消费者 n,m LESS THAN n,为所有消费者定义的一个消费者组
我在其中一个消费者控制台上看到“消费者线程没有使用代理分区”。 这是因为消费者比分区多吗? (在这种情况下 m=3,n=4)
4) 一个主题,多个分区 m,多个消费者 n,m=n,为所有消费者定义的一个消费者组
通过使用 Kafka Monitor,我看到现在每个分区都分配给了一个使用者。但是,数据消费似乎没有并行性。我看到发生的是一个消费者从分区 P1 获取时间 t0 到 t1 的消息。然后另一个消费者从分区 P2 获取从 t1 到 t2 的消息,依此类推。
为什么没有发生并行消费?在我看来,生产者的数据从 t0 到 t1 进入 P1,然后从 t1 到 t2 进入 P2。我认为如果我不指定分区键,生产者的数据将被随机分区。只是随机性似乎被“延迟”了。为什么会这样?
【问题讨论】:
-
看来随机行为在0.81发生了变化。
-
见grokbase.com/t/kafka/users/139d9q9z4h/…。我尝试将 topic.metadata.refresh.interval.ms 设置为 100 毫秒。这仍然没有改变我在上面 4) 中看到的分区行为。
标签: apache-kafka