0

对于阅读的所有分区中的话题:消费和生产特别是卡夫卡分区的消息?

〜斌/ kafka-console-consumer.sh --zookeeper本地主机:2181 --topic myTopic --from-开始

  1. 我怎么能消耗特定的分区的话题? (例如使用分区键13)
  2. 以及如何在带有特定分区键的分区中生成消息?可能吗?

回答

1

您不能使用控制台使用者和生产者。但是您可以使用更高级别的客户端(使用任何适合您的语言)。

  1. 您可以使用例如assign方法是手动指派特定主题分区消耗(https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/consumer/KafkaConsumer.java#L906
  2. 您可以使用自定义Partitioner覆盖分区的逻辑在那里你会手动决定如何分割你的邮件(https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/producer/ProducerConfig.java#L206-L208
1

有了许多可用的客户端,您可以指定分区号,就像serejja所述。

另请参阅https://github.com/cakesolutions/scala-kafka-client,它使用actors并为手动分区和偏移提供多种模式。

如果你想在终端上做同样的事情,我建议使用kafkacat。 (https://github.com/edenhill/kafkacat) 我在开发过程中的个人选择。

你可以做这样的事情

kafkacat -b localhost:9092 -f 'Topic %t[%p], offset::: %o, data: %s key: %k\n' -t testtopic

而对于一个特定的分区,你只需要使用-p标志。