카프카에서 새로 왔으며 해결할 수없는 질문이 있습니다.카프카 제작자가 매우 느림
저는 Kafka와 Zookeeper를 Windows 컴퓨터 (Linux는 아님)에 설치했으며 여러 파티션 (6 개에서 12 개 파티션 사이에서 재생)이있는 브로커를 만들었습니다.
소비자를 만들면 완벽하게 작동하고 좋은 속도로 읽지 만 제작자를 언급하면서 나는 많은 웹 사이트에서 볼 수있는 단순한 제작자를 만들었습니다. 제작자는 루프 안에 있으며 많은 짧은 메시지 (약 2000 개의 매우 짧은 메시지)를 보내고 있습니다.
소비자는 2000 년 메시지를 매우 질식하게 읽었지만 제작자는 초당 140 또는 150 개의 메시지로 브로커에게 메시지를 보냅니다. 전에 말했듯이, 나는 자신의 랩탑 (단지 1 개의 디스크)에서 작업하고 있지만, 초당 수백만 개의 메시지를 읽었을 때, 나는 그 빛과 멀어서 잊어 버린 것이 있다고 생각한다.
더 많은 제작자를 사용하면 결과가 더 나 빠집니다.
같은 노드에있는 브로커가 더 많거나 이와 비슷한 질문이 있습니까? 이 문제는 제 일에 저에게 부과되어 더 나은 컴퓨터의 가능성이 없습니다.
생산자를 생성하는 코드는
public class Producer {
public void publica(String topic, String strKey, String strValue) {
Properties configProperties = new Properties();
configProperties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
configProperties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, LongSerializer.class.getName());
configProperties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
KafkaProducer<String, String> producer = new KafkaProducer<String, String>(configProperties);
ProducerRecord<String, String> rec = new ProducerRecord<String, String>(topic, strValue);
producer.send(rec);
}
}
하고 메시지를 보내는 코드는 (일부)입니다 :
Producer prod = new Producer();
for (int i = 0; i < 2000; i++)
{
key = String.valueOf(i);
prod.publica("TopicName", key, texto + " - " + key);
// System.out.println(i + " - " + System.currentTimeMillis());
}
제작 용 코드를 게시 할 수 있습니까? 나는 당신이 동 기적으로 생산하고 있다고 가정 할 것이다. 비동기로 생산해야한다. 디스크가 문제가되지 않아야합니다 (백그라운드에서 디스크로 플러시). – Treziac
예, 내 게시물을 편집했습니다. 고마워요. –