2016-08-10 6 views
0

Ich habe einen Log Appender mit Kafka Producer implementiert, indem ich die grundlegende Kafka Producer Dokumentation befolgt habe. Meine Konfiguration sieht wie folgt aus und ich benutze den KafkaProducer und benutze send(), um jedes Protokoll an kafka zu senden. In meinem Fall kann ich KafkaAppender nicht verwenden, da wir slf4j oder log4j nicht unterstützen.Verwenden Sie kafka producer als Log Appender

Wie sortiere ich diese Protokolle und wie optimiert man die unten stehende Konfiguration, um eine große Anzahl von Protokollen zu verarbeiten.

Properties props = new Properties(); 
    props.put("bootstrap.servers", "ip:9092"); 
    props.put("acks", "all"); 
    props.put("retries", 0); 
    props.put("batch.size", 16384); 
    props.put("linger.ms", 1); 
    props.put("buffer.memory", 33554432); 
    props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 
    props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); 

Antwort

2

Erhöhen Sie die linger.ms Konfig. Diese Konfiguration bedeutet "Nachrichten nach diesem Timeout senden, auch wenn der Batch noch nicht voll ist". In Ihrem Fall löscht Ihr Hersteller Daten jede Millisekunde und deshalb bemerken Sie kein "Batching".

Verwandte Themen