kafka单条消息过大导致线上OOM,运维连夜跑路了!
消费端的fetch.message.max.bytes指定最大消息需要的内存空间,同样,分区数最大需要内存空间不能超过服务器内存。查看kafka配置,默认单条消息最大1M,当单条消息长度超过1M,就会出现发送到broker失败,从而导致消息在producer的队列一直累积,直到Pro OOM。通过性能测试,kafka在消息为10K时吞吐量达到最大,更大消息降低吞吐量,在设计集群的容量时,尤其要考虑。且有1000个分区,则需近1G内存,确保分区数最大的消息不会超过服务器内存,否则OOM。