Java 使用Kafka处理大型消息
如何处理卡夫卡中的大型消息,如超过20MB等 [2019-03-13 08:59:10923]向主题测试发送消息时出错,键为13字节,值为11947696字节,有错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.RecordTooLargeException:请求包含的消息大于服务器将接受的最大消息大小 [2019-03-13 03:59:14478]向主题测试发送消息时出错,键为13字节,值为11947696字节,有错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)Java 使用Kafka处理大型消息,java,apache-kafka,kafka-consumer-api,kafka-producer-api,Java,Apache Kafka,Kafka Consumer Api,Kafka Producer Api,如何处理卡夫卡中的大型消息,如超过20MB等 [2019-03-13 08:59:10923]向主题测试发送消息时出错,键为13字节,值为11947696字节,有错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.RecordTooLargeException:请求包含的消息大于服务器将接受的最大消息大小 [2019-03-13 03:59:144
org.apache.kafka.common.errors.RecordTooLargeException:序列化时消息为11947797字节,大于您使用max.request.size配置的最大请求大小。我们需要设置以下配置 经纪人 replica.fetch.max.bytes:更改此属性将允许代理中的副本在群集中发送消息,并确保消息被正确复制。如果该值太小,则消息将永远不会被复制,因此,使用者将永远不会看到消息,因为消息将永远不会被提交(完全复制) message.max.bytes:这是代理可以从生产者接收的消息的最大大小 经纪人(主题) max.message.bytes:卡夫卡允许的最大记录批量大小。如果此值增加,并且存在早于0.10.2的使用者,则使用者的获取大小也必须增加,以便使用者能够获取如此大的记录批次。在最新的消息格式版本中,为提高效率,记录始终分组为批。在以前的消息格式版本中,未压缩的记录不会分组为批,在这种情况下,此限制仅适用于单个记录(默认为代理的message.max.bytes) 制作人 max.request.size:请求的最大大小(以字节为单位)。此设置将限制制作者在单个请求中发送的记录批数,以避免发送大量请求。这实际上也是最大记录批量大小的上限。请注意,服务器对记录批量大小有自己的上限,这可能与此不同 压缩。键入:设置为snappy,这将增加可随单个请求发送的数据总量,并且应与更大的batch.size配对 缓冲区。内存:如果启用了压缩,则缓冲区大小也应增大 批处理。大小:批处理大小应至少为10s KB,在300kb左右可以看到收益递减(远程客户端的收益减少)。批量越大,压缩比也越高 linger.ms:linger.ms抢占对批量大小设置的任何界限。增加此值以确保在较慢的生产时间内不会发送较小的批次 消费者 fetch.message.max.bytes:这将确定消费者可以获取的消息的最大大小 max.partition.fetch.bytes:服务器将返回的每个分区的最大数据量