Hi;
Im using asynchronous producer to send messages to the broker. If there is
no any error in my callback, i see it takes approximately 0.3 seconds to
produce message. But when I get below error [1], I see it takes 60 seconds
to produce message.
But I do not see any message loss . All messages are available in the
broker.
What causes this error? I see this delay in every 50 message I produced.
How can I increase the performance of the producer when I get this error?

*Code;*

producer.send(new ProducerRecord(topic, this), new ProducerCallback ());


  private class ProducerCallback implements Callback {

        @Override

        public void onCompletion(RecordMetadata recordMetadata, Exception ex)
{

            if (ex != null) {

              log.error("Error when publishing messages to the topic. Topic
:"+ recordMetadata.topic(),ex);

            }

        }

    }

*Producer properties*

*acks=1*

*linger.ms <http://linger.ms>=10*

*batch.size=51200*

*bootstrap.servers=aukk1.xx.com <http://aukk1.xx.com>\:9092,aukk2.xx.com
<http://aukk2.xx.com>\:9092,aukk3.xx.com <http://aukk3.xx.com>\:9092*

*key.serializer=org.apache.kafka.common.serialization.StringSerializer*

*value.serializer=com.xx.KafkaPayloadSerializer*

[1]


04:51:20,025 ERROR
[org.apache.kafka.clients.producer.internals.RecordBatch]
(kafka-producer-network-thread | producer-673) Error executing
user-provided callback on message for topic-partition RAW_XML1harveyzhu-1::
java.lang.NullPointerException
       at
com.lxx.kafkamodels.KafkaPayload$ProducerCallback.onCompletion(KafkaPayload.java:204)
       at
org.apache.kafka.clients.producer.internals.RecordBatch.done(RecordBatch.java:109)
       at
org.apache.kafka.clients.producer.internals.RecordBatch.maybeExpire(RecordBatch.java:155)
       at
org.apache.kafka.clients.producer.internals.RecordAccumulator.abortExpiredBatches(RecordAccumulator.java:245)
       at
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:205)
       at
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:147)
       at java.lang.Thread.run(Thread.java:745)


Thanks.
-- 
-Ratha
http://vvratha.blogspot.com/

Reply via email to