单个Kafka生产者可以针对多个主题产生消息吗?

Sha*_*kar 3 apache-kafka kafka-producer-api

我只是在探索Kafka,目前我正在使用“一个producer和一个”主题来生成消息,并且该消息被一个消息消耗Consumer。很简单的。

我正在阅读Kafka页面,new Producer API is thread-safe并且共享单个实例将提高性能。

这是否意味着我可以使用单个生产者将消息发布到多个主题?

小智 5

我自己从未尝试过,但我想您可以。由于生产者和发送记录的代码是(从这里https://kafka.apache.org/090/javadoc/index.html?org/apache/kafka/clients/producer/KafkaProducer.html):

Producer<String, String> producer = new KafkaProducer<>(props);
 for(int i = 0; i < 100; i++)
     producer.send(new ProducerRecord<String, String>("my-topic", Integer.toString(i), Integer.toString(i)));
Run Code Online (Sandbox Code Playgroud)

因此,我想,如果您只是在中编写了不同的主题ProducerRecord,那应该是不可能的。

另外,在http://kafka.apache.org/081/documentation.html#producerapi上,它明确表示可以使用一种方法 send(List<KeyedMessage<K,V>> messages)来写入多个主题。