首页 > 解决方案 > 如何使用 nodejs 或 java 在 Kafka 流生产者中创建大消息块(1MB 以上)?

问题描述

我尝试使用 kafka-node 在 nodejs 中创建 Kafka 生产者的消息块,但没有得到任何解决方案。所以现在我正在使用 Java 创建一个 Kafka 流生产者,我需要发送大小超过 1MB 的大消息。如何在 Kafka 生产者中创建消息块并使用相同的消息?

标签: apache-kafkakafka-producer-api

解决方案


kafka 有一个最大的有效载荷大小。

如果您需要发送更大的有效负载,但它们的大小仍然是有限的,您可以在代理和生产者配置中增加该限制(message.max.bytes代理配置max.request.size生产者配置中)。10MB 应该仍然是一个合理的限制。

linkedin 维护(java)kafka 客户端(https://github.com/linkedin/li-apache-kafka-clients),这些客户端能够在生产者上对大消息进行分段并在消费者上重新组装它们,但解决方案并不完美:

  1. 不适用于日志压缩的 kafka 主题
  2. 对消费者有内存开销,用于重新组装和存储片段。

推荐阅读