kafka处理超大消息的配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/change_on/article/details/90370332

总会遇到各种各样的需求,kafka达到最佳吞吐量的消息大小是10k,而在我们的项目中,消息有的是1k,有的是100M,最大可达400M,这种消息很少很少,但是会有,所以整套环境必须要使用1K~400M。

kafka最近的版本对消息的最大限制是2G,是足够的,这里有3个地方要配置:

  • broker
    message.max.bytes :500000000B(500M),这是单个消息的最大值
    replica.fetch.max.bytes :512000000B(512M),这是单个消息的最大值broker可复制的消息的最大字节数,比message.max.bytes大,否则broker会接收此消息,但无法将此消息复制出去,从而造成数据丢失,但是不能太大!!!不然复制的时候容易内存溢出
  • consumer
    fetch.message.max.bytes:500000000B(500M) 这是消费者能读取的最大消息,大于或等于message.max.bytes
  • producer
    max.request.size:500000000B(500M) 这是生产者能请求的最大消息,大于或等于message.max.bytes

kafka jvm参数调整:

  • 堆内存:kafka-server-start.sh文件的 export KAFKA_HEAP_OPTS="-Xmx6G -Xms6G"

这样基本就完了

猜你喜欢

转载自blog.csdn.net/change_on/article/details/90370332