我可以使用多少个生产者来写一个主题

How many Producers can I use to write to a single topic

我有一个将消息放入 Kafka 主题的 Web 应用程序。这个应用程序有很多实例 (200),每个实例都包含它自己的 Kafka Producer。

问题:

  1. 是否存在每个主题的生产者数量上限?
  2. Producers的数量对Kafka性能有影响吗?如果是,如何?
  3. 生产者的最佳做法是什么?每个应用程序一个同步生产者,一个异步生产者,还是一个自定义的同步生产者池?

Is exists any upper bound of Producers amount per topic?

我知道的唯一限制是可用 IP 地址的数量。您不太可能在描述的应用程序中遇到任何实际限制。

Does Producer amount impact on Kafka performance? If yes, how?

不,所有其他条件相同(流量、异步与同步(包括批量大小/时间限制)等)。

大概连接的某个地方有一些开销,但它足够小,我从来没有注意到它。

What is Producer best practice (One sync producer per application, async producer or custom pool of sync producers)

很大程度上取决于您的用例,我不清楚。大多数情况下,异步 > 同步。如果您选择使用异步,那么您必须处理对生产者进行批处理的风险(即数据丢失),以及与为批处理构建足够的消息/等待批处理超时触发相关的延迟。如果您的用例要求足够高,这些延迟可能会很严重。