目录
一、kafka消费报错原因
-
问题原因一:个是kafka本身的配置没有调整到上限
-
问题原因二:就是我们自己写python消费kafka代码的时候没有参数配置没有限制
-
RecordTooLargeError: ("There are some messages at [Partition=Offset]: {TopicPartition(topic='psadad', partition=1): 75} whose size is larger than the fetch size 1048576 and hence cannot be ever returned. Increase the fetch size, or decrease the maximum message size the broker will allow.", {TopicPartition(topic='psadad', partition=1): 75})
二、解决方案
1、原因一的解决方案
- 在kafka中,默认的消息体大小为1M。在实际的业务场景,有时候需要修改kafka消息体大小,修改kafka消息体大小需要注意下面的几个方面
- message.max.bytes (broker配置)
- replica.fetch.max.bytes (partition配置)
- max.message.bytes (topic配置)
- 在生产者端配置max.request.size,这是单个消息最大字节数,根据实际调整,max.request.size 必须小于 message.max.bytes 以及消费者的 max.partition.fetch.bytes。这样消息就能不断发送
- kafka config服务端配置文件server.properties, server.properties中加上的message.max.bytes配置
2、原因二的解决方案
- 如图添加参数
max_partition_fetch_bytes=1048576 * 10