Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka {Kafka V 0.10.1}如果异步生产者Apache Kafka x发生任何错误,则生成消息大约需要1分钟_Apache Kafka_Kafka Producer Api - Fatal编程技术网

Apache kafka {Kafka V 0.10.1}如果异步生产者Apache Kafka x发生任何错误,则生成消息大约需要1分钟

Apache kafka {Kafka V 0.10.1}如果异步生产者Apache Kafka x发生任何错误,则生成消息大约需要1分钟,apache-kafka,kafka-producer-api,Apache Kafka,Kafka Producer Api,Im使用异步生产者向代理发送消息。若我的回调中并没有任何错误,我发现生成消息大约需要0.3秒。但当我低于错误[1]时,我发现生成消息需要60秒。 但我没有看到任何消息丢失。所有消息都可以在代理中使用。 是什么导致了这个错误?我在每50封邮件中都能看到这种延迟。 当我遇到此错误时,如何提高制作人的性能 代码 producer.send(new ProducerRecord(topic, this), new ProducerCallback ()); private class Prod

Im使用异步生产者向代理发送消息。若我的回调中并没有任何错误,我发现生成消息大约需要0.3秒。但当我低于错误[1]时,我发现生成消息需要60秒。 但我没有看到任何消息丢失。所有消息都可以在代理中使用。 是什么导致了这个错误?我在每50封邮件中都能看到这种延迟。 当我遇到此错误时,如何提高制作人的性能

代码

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

            }

        }

    }
生产者属性

acks=1

linger.ms=10

batch.size=51200

bootstrap.servers=aukk1.xx.com\:9092,aukk2.xx.com\:9092,aukk3.xx.com\:9092

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

value.serializer=com.xx.KafkaPayloadSerializer
[1]


如果ex不为null,则第一个参数“RecordMetadata”为null,这就是为什么在调用RecordMetadata时会看到NPE。topic()

如果ex不为null,则第一个参数“RecordMetadata”为null,这就是为什么在调用RecordMetadata时会看到NPE。topic()

使用以下代码生成记录元数据:

if (ex == null) {  
            logger.info("Successfully received the details as: \n" +  
                    "Topic:" + recordMetadata.topic() + "\n" +  
                    "Partition:" + recordMetadata.partition() + "\n" +  
                    "Offset" + recordMetadata.offset() + "\n" +  
                    "Timestamp" + recordMetadata.timestamp());  
                      }  
  
         else {  
            logger.error("Can't produce,getting error",e);  

使用以下代码生成记录元数据:

if (ex == null) {  
            logger.info("Successfully received the details as: \n" +  
                    "Topic:" + recordMetadata.topic() + "\n" +  
                    "Partition:" + recordMetadata.partition() + "\n" +  
                    "Offset" + recordMetadata.offset() + "\n" +  
                    "Timestamp" + recordMetadata.timestamp());  
                      }  
  
         else {  
            logger.error("Can't produce,getting error",e);  

所以,我在回调处理程序中收到一个异常,但元数据为null?为什么为空?这可能是因为某些产品批次的元数据不可用且超时。您可以打印异常以查看出了什么问题。那么,我在回调处理程序中收到了一个异常,但元数据为null?为什么为空?这可能是因为某些产品批次的元数据不可用且超时。您可以打印异常以查看出了什么问题。