[英]Getting TimeoutException for some messages while sending to Kafka topic
Exception Stacktrace:
org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for ****-656 due to 30037 ms has passed since batch creation plus linger time
at org.springframework.kafka.core.KafkaTemplate$1.onCompletion(KafkaTemplate.java:255) ~[spring-kafka-1.1.6.RELEASE.jar!/:?]
at org.apache.kafka.clients.producer.internals.RecordBatch.done(RecordBatch.java:109) ~[kafka-clients-0.10.1.1.jar!/:?]
at org.apache.kafka.clients.producer.internals.RecordBatch.maybeExpire(RecordBatch.java:160) ~[kafka-clients-0.10.1.1.jar!/:?]
at org.apache.kafka.clients.producer.internals.RecordAccumulator.abortExpiredBatches(RecordAccumulator.java:245) ~[kafka-clients-0.10.1.1.jar!/:?]
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:212) ~[kafka-clients-0.10.1.1.jar!/:?]
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:135) ~[kafka-clients-0.10.1.1.jar!/:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_77]
在部署某些 kafka 消息的第一天,就在PROD環境中收到了上述異常。 從 PROD 中撤銷更改。 在Stage env 中,我在測試時從未見過該異常。 一旦我能夠重現異常但那只是一次,我可能已經跑了 10 次。 現在我對如何為這個問題找到 RCA 沒有任何指示?
我正在發布 Kafka 發件人配置,如下所示,
retries=3
retryBackoffMS=500
lingerMS=30
autoFlush=true
acksConfig=all
kafkaServerConfig=***<Can't post here>
reconnectBackoffMS=200
compressionType=snappy
batchSize=1000000
maxBlockMS=500000
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>1.1.8.RELEASE</version>
</dependency>
異常基本上表示緩沖區中的記錄達到超時。
在 stg 你看不到這個異常是因為 prod env 更忙。
你能更新你的 spring-kafka 版本嗎? 您的 kafka 客戶端遠遠落后於最新版本。 https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka/1.1.8.RELEASE使用 kafka 0.10.x 現在已經是 2.3.x
如果可以使用最新版本,可以將delivery.timeout.ms
設置的更高一些
如果您無法升級到較新的版本,則必須玩linger.ms
和request.timeout.ms
(嘗試增加它們)
除此之外,默認重試次數為最大 integer,顯然您的重試次數:3 不太實用。 如果不想一直重連,30比較實用。 https://docs.confluent.io/current/installation/configuration/producer-configs.html or https://kafka.apache.org/documentation/#producerconfigs
請注意,兩個鏈接都指向當前版本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.