增加卡夫卡生产者的生产量

时间:2019-01-21 11:29:56

标签: apache-kafka

我在计算生产者吞吐量时发现了article。 Jay Kreps在其中说,对于单个producer线程和3x同步分区复制,他获得421,823条记录/秒。他的记录均为100字节,他有6个分区和6个代理。他还使用基于回调的send,这意味着他可以保证消息的顺序。

我正在使用Kafka作为运行单个代理,6个分区,1x复制的服务。我发送的记录大小大致相同,我每秒获得23条记录。与Jay不同,我使用架构注册表进行avro序列化。我已经尝试了所有类型的发送Kafka Producer API所提供的内容:

  • 在未来致电.get
  • 发送带有回调的邮件
  • 发送没有回调的消息

我离上述数字还差得远。我想保证消息的顺序,因此我希望至少将回调与记录一起传递。

我知道,追逐他的基准将非常困难,这不是我的目标。我只是觉得我缺少一些基本的东西。我可以问些建议吗?我将根据需要提供尽可能多的其他上下文。

1 个答案:

答案 0 :(得分:0)

因此,在进行了一些研究之后,我发现对于发送给Kafka的每个批处理,我都对模式注册表进行了阻止调用。一旦处理完,吞吐量就可以达到8500条记录/秒。

如果您使用的是架构注册表,并且不想对其进行常量调用

  • 确保您将auto.register.schemas设置为false
  • 如果您使用的是GenericRecord,请确保您的Schema对象的引用是相同的