当前位置: 首页 > 知识库问答 >
问题:

使用Kafka处理大邮件

况胡媚
2023-03-14

如何处理Kafka中的大型消息,如超过20MB等。

[2019-03-13 08:59:10923]向主题测试发送消息时出错,键为13字节,值为11947696字节,有错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)org。阿帕奇。Kafka。常见的错误。RecordTooLargeException:请求包含的消息大于服务器将接受的最大消息大小。

[2019-03-13 03:59:14478]向主题测试发送消息时出错,键为13字节,值为11947696字节,有错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)org。阿帕奇。Kafka。常见的错误。RecordTooLargeException:序列化时消息为11947797字节,大于您使用max.request配置的最大请求大小。大小配置。

共有1个答案

邓仲卿
2023-03-14

我们需要设置以下配置

经纪人

复制品取来max.bytes:对该属性的更改将允许代理中的副本在集群内发送消息,并确保消息被正确复制。如果该值太小,则消息将永远不会被复制,因此,使用者将永远不会看到消息,因为消息将永远不会被提交(完全复制)。

消息max.bytes:这是代理可以从生产者接收的消息的最大大小。

经纪人(主题)

max.message.bytes:Kafka允许的最大记录批量大小。如果增加了这一点,并且有大于0.10.2的消费者,消费者的读取大小也必须增加,以便他们可以读取如此大的记录批次。在最新的消息格式版本中,为了提高效率,记录总是分组成批。在以前的消息格式版本中,未压缩的记录不会分组成批,在这种情况下,此限制仅适用于单个记录(默认为代理的message.max.bytes)。

制作人

最大请求。大小:请求的最大大小(字节)。此设置将限制制作者在单个请求中发送的记录批数,以避免发送大量请求。这实际上也是最大记录批量大小的上限。请注意,服务器对记录批量大小有自己的上限,这可能与此不同。

压缩。类型:设置为snappy,这将增加可随单个请求发送的数据总量,并且应与更大的批配对。大小

缓冲器内存:如果已启用压缩,则缓冲区大小也应增大。

一批大小:批处理大小应至少为10s的KB,在300kb左右可以看到递减的返回(远程客户端更少)。批量越大,压缩比也越高。

linger.ms:linger.ms抢占放置在批次大小上的任何边界。增加此值以确保在较慢的生产时间内不会发送较小的批次

消费者

取来消息max.bytes:这将确定消费者可以获取的消息的最大大小。

最大分区数。取来字节:服务器将返回的每个分区的最大数据量。

 类似资料:
  • 问题内容: 我正在使用Hadoop示例程序WordCount处理大量的小文件/网页(大约2-3 kB)。由于这与hadoop文件的最佳文件大小相去甚远,因此该程序非常慢。我猜这是因为安置和撕毁工作的成本远远高于工作本身。这样的小文件还会导致文件名的命名空间耗尽。 我读到在这种情况下,我应该使用HDFS存档(HAR),但是我不确定如何修改此程序WordCount以从此存档中读取。程序可以在不进行修改

  • 问题内容: 用Flask处理超大文件上传(1 GB以上)的最佳方法是什么? 我的应用程序实际上需要多个文件,为它们分配一个唯一的文件号,然后根据用户选择的位置将其保存在服务器上。 我们如何将文件上传作为后台任务运行,以使用户在1小时内没有浏览器旋转,而是可以立即进入下一页? Flask开发服务器能够处理大量文件(50gb需要1.5个小时,上传速度很快,但将文件写入空白文件的速度却很慢) 如果我用T

  • 问题内容: 我正在寻找一种数学解决方案,该解决方案可以处理真实(长,大,大,风暴)数字。我还没有发现任何东西,但是我不想现在这个问题还没有解决。我正在寻找一种简单的Number解决方案,例如MicrosoftExcelPrecision(30位十进制)或BigInteger(Java)解决方案。当然是用Java语言编写的。 问题答案: BigInt现在是Firefox和Chrome的一部分; 你不

  • 问题内容: 要使用带有大量数字(100,000+)的Fermat基本性测试时需要的[模幂,它需要进行一些非常大的计算。 当我将两个大数相乘时(例如:62574和62574),PHP似乎将结果强制转换为浮点数。获取该模量的值将返回奇怪的值。 有什么方法可以使PHP正确执行这些计算?另外,还有另一种方法可以找到适用于大量数值的模量值吗? 问题答案: 出于某种原因,PHP中有两个处理任意长度/精度数字的

  • 问题内容: 我有一些Python代码可以执行一个外部应用程序,当该应用程序的输出量很少时,它可以很好地运行,但是在有大量输出时,它会挂起。我的代码如下: 文档中有一些注释似乎表明了潜在的问题。等待中,有: 警告:如果子进程向或管道生成足够的输出,从而阻塞等待OS管道缓冲区接受更多数据的输出,则将死锁。使用避免这种情况。 尽管进行了交流,但我发现: 注意读取的数据缓存在内存中,因此,如果数据大小很大

  • 我正在使用来使用来自spring-boot应用程序中某个主题的消息,我需要定期运行该应用程序。spring-kafka版本是2.2.4.发行版。