【发布时间】:2017-10-27 15:05:44
【问题描述】:
保持batch.size 较小会导致生产者更频繁地发送消息的开销,同时会降低吞吐量,保持较大会导致内存浪费。是否有任何解决方案可以根据负载动态调整此大小?
【问题讨论】:
-
你如何预测传入的负载?过去 1 分钟的传入负载可能与下一分钟/未来分钟不同。
标签: apache-kafka kafka-producer-api
保持batch.size 较小会导致生产者更频繁地发送消息的开销,同时会降低吞吐量,保持较大会导致内存浪费。是否有任何解决方案可以根据负载动态调整此大小?
【问题讨论】:
标签: apache-kafka kafka-producer-api
仅当您停止以前的生产者并开始新的生产者时。生产者对象在发送任何消息之前需要所有属性。您不能在作业中修改其属性。
【讨论】:
您可以将linger.ms 与batch.size 属性结合使用。如果您已将 batch.size 设置为 5242880 (5 MB) 并将 linger.ms 设置为 10 ms。然后,生产者将等到批量大小填满/达到逗留时间。
在官方文档中查看有关linger.ms 属性的更多信息。
【讨论】: