我们正以大约9000条记录/秒的速度向我们的kafka群集写入消息,有时我们发现生产者性能显着下降,然后它永远不会恢复。发生这种情况时,我们会看到以下错误“无法在超时内分配缓冲区”。以下是当流程运行良好且达到错误状态时采用的JMX生产者指标。当进程降级时,“等待线程”度量非常高,任何输入都会受到赞赏。
生产者参数是
batch.size=1000000
linger.ms=30000
acks=-1
metadata.fetch.timeout.ms=1000
compression.type=none
max.request.size=10000000
虽然缓冲区完全可用,但错误是“org.apache.kafka.common.errors.TimeoutException:无法在配置的最大阻塞时间内分配内存”
答案 0 :(得分:0)
有一次你开始发送批量的1.000.000消息我认为这就是你性能下降的原因。尝试降低该数字或将linger.ms设置得更低。