kafka producer寫入超時

現象:apache

kafka producer一開始寫入正常,慢慢的會大量超時異常,偶爾正常寫入;在callback函數打印異常信息爲函數

org.apache.kafka.common.errors.TimeoutException: Expiring 2 record(s) for testTopic-0 due to 64534 ms has passed since batch creation plus linger time

緣由:code

producer send方法的callback函數執行緩慢致使;kafka

producer往broker發送數據時是串行的,只有上次batch所有寫入broker,而且所有callback函數執行完畢後,纔會繼續下一次發送。若是上一次發送所有callback函數執行時間超過了request.timeout.ms(30s),就會致使後續batch的message發送時間大於建立時間30s以上,而後被producer丟棄並拋出異常;io

方法:test

1.加大request.timeout.ms值;sed

2.調整callback,使得batch的callback執行時間在request.timeout.ms以內;request

相關文章
相關標籤/搜索