关于kafka发送消息过大导致的异常的解决方式
在kafka发送消息的时候,如果消息过大超过了max.request.size的默认大小(1M),就会报下面的异常:
这个时候我们如果单独调整max.request.size参数的大小可能不起作用,因为在broker端和consumer端同样对消息的大小存在限制,我们在调整的时候要同时调整这三个参数,不然可能是broker接受不了producter端的消息,要不就是consumer端消费不了消息。调整如下:
producer端:
max.request.size=5242880(5M)
broker:
message.max.bytes=6291456(6M)
consumer:
fetch.max.bytes=7340032(7M)
max.request.size < message.max.bytes < fetch.max.bytes
还有一个地方就是topic端同样也有一个max.message.bytes参数,它只针对某个主题生效,可动态配置,可覆盖全局的 message.max.bytes,好处就是可以针对不同主题去设置 Broker 接收消息的大小,而且不用重启 broker。