apache-kafka - 如何使用 nodejs 或 java 在 Kafka 流生产者中创建大消息块(1MB 以上)?
问题描述
我尝试使用 kafka-node 在 nodejs 中创建 Kafka 生产者的消息块,但没有得到任何解决方案。所以现在我正在使用 Java 创建一个 Kafka 流生产者,我需要发送大小超过 1MB 的大消息。如何在 Kafka 生产者中创建消息块并使用相同的消息?
解决方案
kafka 有一个最大的有效载荷大小。
如果您需要发送更大的有效负载,但它们的大小仍然是有限的,您可以在代理和生产者配置中增加该限制(message.max.bytes
在代理配置和max.request.size
生产者配置中)。10MB 应该仍然是一个合理的限制。
linkedin 维护(java)kafka 客户端(https://github.com/linkedin/li-apache-kafka-clients),这些客户端能够在生产者上对大消息进行分段并在消费者上重新组装它们,但解决方案并不完美:
- 不适用于日志压缩的 kafka 主题
- 对消费者有内存开销,用于重新组装和存储片段。
推荐阅读
- java - 将 Jersey 客户端转换为 HttpUrlConnection
- html - 将 Bootstrap 的 Modal 上的 X 按钮更改为左侧
- javascript - 在 reducer 函数中更改 targetArray.length 时的 targetArray.reduce 行为
- python - Django-Rest:需要从 oracle 批量获取所有数据
- java - 尝试在 Java 中考虑任务栏会导致窗口大小不准确
- r - match.arg(mvnTest) 中的错误:“arg”的长度必须为 1
- python - 无论我将 MPI Parallel 设置为 false 还是 true,我都会继续收到 MPI 错误
- swift - 字符串数组参数无法识别
- c# - 如何从 puppeteer-sharp 中获取可读的浏览器/页面错误?
- java - Java 查询结果中 rs.next() 的性能不佳