2016-08-10 4 views
0

kafkaプロデューサのログアペンダは、基本的なカフカプロデューサの説明に従って実装しました。私の設定は以下のようになり、私はKafkaProducerを使い、send()を使って各ログをkafkaに送信します。私の場合は、slf4jまたはlog4jをサポートしていないため、KafkaAppenderを使用できません。kafkaプロデューサをログアペンダとして使用

これらのログをバッチする方法と、多数のログを処理するために以下の設定を最適化する方法。

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"); 

答えて

2

linger.msの設定を増やしてください。この設定は、「バッチがいっぱいでなくてもこのタイムアウト後にメッセージを送信する」ことを意味します。あなたのケースでは、プロデューサはミリ秒ごとにデータをフラッシュします。そのため、「バッチ処理」に気付かないのです。

関連する問題