在kafka中创建多少个生产者?
2022-09-04 19:35:45
在一个高容量的实时java web应用程序中,我正在向apache kafka发送消息。目前,我正在发送到单个主题,但将来我可能需要向多个主题发送消息。
在这种情况下,我不确定是否要为每个主题创建一个生产者,或者我应该对所有主题使用一个生产者吗?
这是我的代码:
props = new Properties();
props.put("zk.connect", <zk-ip1>:<2181>,<zk-ip3>:<2181>,<zk-ip3>:<2181>);
props.put("zk.connectiontimeout.ms", "1000000");
props.put("producer.type", "async");
Producer<String, Message> producer = new kafka.javaapi.producer.Producer<String, Message>(new ProducerConfig(props));
ProducerData<String, Message> producerData1 = new ProducerData<String, Message>("someTopic1", messageTosend);
ProducerData<String, Message> producerData2 = new ProducerData<String, Message>("someTopic2", messageTosend);
producer.send(producerData1);
producer.send(producerData2);
如您所见,一旦创建了创建创建器,我就可以使用它将数据发送到不同的主题。我想知道什么是最佳实践?如果我的应用发送到多个主题(每个主题获取不同的数据),我可以/应该使用单个生产者还是应该创建多个生产者?何时(一般而言)我应该使用多个生产者?