我在计算生产者吞吐量时发现了article。 Jay Kreps在其中说,对于单个producer线程和3x同步分区复制,他获得421,823条记录/秒。他的记录均为100字节,他有6个分区和6个代理。他还使用基于回调的send,这意味着他可以保证消息的顺序。
我正在使用Kafka作为运行单个代理,6个分区,1x复制的服务。我发送的记录大小大致相同,我每秒获得23条记录。与Jay不同,我使用架构注册表进行avro序列化。我已经尝试了所有类型的发送Kafka Producer API所提供的内容:
.get
我离上述数字还差得远。我想保证消息的顺序,因此我希望至少将回调与记录一起传递。
我知道,追逐他的基准将非常困难,这不是我的目标。我只是觉得我缺少一些基本的东西。我可以问些建议吗?我将根据需要提供尽可能多的其他上下文。
答案 0 :(得分:0)
因此,在进行了一些研究之后,我发现对于发送给Kafka的每个批处理,我都对模式注册表进行了阻止调用。一旦处理完,吞吐量就可以达到8500条记录/秒。
如果您使用的是架构注册表,并且不想对其进行常量调用
auto.register.schemas
设置为false Schema
对象的引用是相同的