[英]Increasing Kafka producer throughput
我在计算生产者吞吐量时发现了这篇文章 。 Jay Kreps在报告中说,对于单个生产者线程和3x同步分区复制,他每秒可获得421,823条记录。 他的记录均为100字节,他有6个分区和6个代理。 他还使用基于回调的send,这意味着他可以保证消息的顺序。
我正在使用Kafka作为运行单个代理,6个分区,1x复制的服务。 我发送的记录大小大致相同,我每秒获得23条记录。 与Jay不同,我使用架构注册表进行avro序列化。 我尝试了所有类型的发送Kafka Producer API所提供的:
.get
我什至离上述数字还差得远。 我想保证消息的顺序,因此我希望至少将回调与记录一起传递。
我知道追逐他的基准将很困难,这不是我的目标。 我只是觉得我缺少一些基本的东西。 我可以问些建议吗? 我将根据需要提供尽可能多的其他上下文。
因此,经过一番研究,结果发现我对发送给Kafka的每个批处理的模式注册表都有阻塞调用。 一旦处理完,吞吐量就可以达到8500条记录/秒。
如果您使用的是架构注册表,并且不想对其进行常量调用
auto.register.schemas
设置为false Schema
对象的引用是相同的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.