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標誌。