kafka producer写入超时

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

现象:

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

原因:

producer send方法的callback函数执行缓慢导致;

producer往broker发送数据时是串行的,只有上次batch全部写入broker,并且全部callback函数执行完毕后,才会继续下一次发送。如果上一次发送全部callback函数执行时间超过了request.timeout.ms(30s),就会导致后续batch的message发送时间大于创建时间30s以上,然后被producer丢弃并抛出异常;

方法:

1.加大request.timeout.ms值;

2.调整callback,使得batch的callback执行时间在request.timeout.ms之内;

转载于:https://my.oschina.net/u/134474/blog/1531556

你可能感兴趣的:(kafka producer写入超时)