2016-08-23 73 views
0

我只是在探索Kafka,目前我正在使用一个producer和一个话题来产生消息,它被一个Consumer消耗。很简单。单个卡夫卡制作人可以为多个主题制作邮件吗?

我在读卡夫卡页面时,new Producer API is thread-safe和共享单个实例会提高性能。

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

+0

是的,请参阅http://kafka.apache.org/documentation.html#producerapi上的文档。 –

+0

@miguno我在提供的链接中几乎看不到任何关于该问题的内容。它只关于依赖项:( –

+0

在上面的文档(简短部分)中,有一个直接链接到[KafkaProducer的Java文档](http://kafka.apache.org/0100/javadoc/index.html? org/apache/kafka/clients/producer/KafkaProducer.html),请参阅[javadocs](http://kafka.apache.org/0100/javadoc/index。)中的“显示如何使用生产者的示例。 html?org/apache/kafka/clients/producer/KafkaProducer.html)“。该页面有一个代码示例,显示了如何在发送消息时定义目标主题,对不起,如果我不够清楚, –

回答

4

从来没有尝试过,但我想你可以。由于用于生产的代码和发送记录(从这里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))); 

所以,我想,如果你只是写在ProducerRecord不同的主题,比它应该是可能的。

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

+0

FWIW ,生产者API的最新Kafka文档位于http://kafka.apache.org/documentation.html#producerapi(上面的链接是针对旧版的Kafka 0.8.1版本的 –

+0

)该方法? –

+0

生产部分说:“示例显示如何使用生产者在[javadocs](http://kafka.apache.org/0100/javadoc/index.html?org/apache/kafka/clients/producer/KafkaProducer.html)中给出。“。该页面有一个代码示例,显示如何在发送消息时定义目标主题。 –