2017-10-14 52 views
1

卡夫卡版本:0.10.2.1,卡夫卡监制错误到期的课题10余结果:XXXXXX:因为批创建6686 ms是否已过加上盘桓时间

卡夫卡监制错误到期10条(个),主题: XXXXXX:因为批创建6686 ms是否已过加上盘桓时间 org.apache.kafka.common.errors.TimeoutException:到期10条(个),主题:XXXXXX:6686毫秒自批创建通过加逗留时间

任何线索将不胜感激。

+0

你得到这个错误,当制片人可以将数据发送给它认为负责根据其具有的元数据的消息的代理。卡夫卡经纪人死亡或您的制片人当时是否存在关联问题? –

+0

我一整天都会间歇性地收到这个错误。正在搜索答案 – Shades88

+0

当我更改我的kafka制作人“max.request.size”时:“4713360”, “acks”:“all”, “timeout.ms”:“18000”, “停止发生。大小“:”100000“, - 这是以字节为单位的大小..” “linger.ms”:“100”, “retries”:“5” “buffer.memory”:“66554432”, “request.timeout.ms”:“90000”,“block.on.buffer.full”,“true”基本上linger.ms和batch.size和block.on.buffer .full在这里扮演重要角色 – Raju

回答

0

这个例外发生,因为你排队很多记录在更快的速度比他们可以发送。

当您调用send方法时,ProducerRecord将被存储在内部缓冲区中以发送给代理。无论是否发送ProducerRecord,该方法都会立即返回。

记录被分组为批次以发送给代理,以减少每个消息被偷听的传输并提高吞吐量。

将记录添加到批次后,发送该批次以确保其已在指定的持续时间内发送有时间限制。这由Producer配置参数request.timeout.ms控制,默认值为30秒。

如果批处理已经排队超过超时限制,则会抛出异常。该批次中的记录将从发送队列中删除。

Producer配置block.on.buffer.full,metadata.fetch.timeout.ms和timeout.ms已被删除。它们最初在卡夫卡0.9.0.0中被弃用。

所以给一个尝试增加request.timeout.ms

不过,如果你有相关的吞吐量任何问题,你也可以参考以下blog