问题描述
当生产者发布第一条消息时,我遇到以下异常,我试图了解错误的含义
Uncaught exception in thread 'kafka-producer-network-thread | producer-1':
java.lang.AbstractMethodError: Method brave/kafka/clients/TracingProducer.close(Ljava/time/Duration;)V is abstract
at brave.kafka.clients.TracingProducer.close(TracingProducer.java) ~[brave-instrumentation-kafka-clients-5.6.1.jar:na]
at org.springframework.kafka.core.KafkaTemplate.closeProducer(KafkaTemplate.java:382) ~[spring-kafka-2.3.6.RELEASE.jar:2.3.6.RELEASE]
at org.springframework.kafka.core.KafkaTemplate.lambda$buildCallback$4(KafkaTemplate.java:433) ~[spring-kafka-2.3.6.RELEASE.jar:2.3.6.RELEASE]
at org.apache.kafka.clients.producer.KafkaProducer$InterceptorCallback.onCompletion(KafkaProducer.java:1318) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.producer.internals.ProducerBatch.completeFutureAndFireCallbacks(ProducerBatch.java:227) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.producer.internals.ProducerBatch.done(ProducerBatch.java:196) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.producer.internals.Sender.completeBatch(Sender.java:707) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.producer.internals.Sender.completeBatch(Sender.java:688) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.producer.internals.Sender.handleProduceResponse(Sender.java:596) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.producer.internals.Sender.access$100(Sender.java:74) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.producer.internals.Sender$1.onComplete(Sender.java:798) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.ClientResponse.onComplete(ClientResponse.java:109) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.NetworkClient.completeResponses(NetworkClient.java:561) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:553) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:335) ~[kafka-clients-2.3.1.jar:na]
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:244) ~[kafka-clients-2.3.1.jar:na]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_201]
解决方法
勇敢的5.6.1太旧了-它没有采用Producer.close()
的{{1}}方法。看起来它是在5.6.4中添加的。