在高容量實時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);
正如你所看到的,一旦生產商已經創建我可以用它來發送數據到不同的主題。 我想知道最佳做法是什麼?如果我的應用程序發送到多個主題(每個主題獲取不同的數據),我可以/應該使用單個生產者還是應該創建多個生產者?何時(通常來說)我應該使用多於一個生產者?