我可以使用多少个生产者来写一个主题
How many Producers can I use to write to a single topic
我有一个将消息放入 Kafka 主题的 Web 应用程序。这个应用程序有很多实例 (200),每个实例都包含它自己的 Kafka Producer。
问题:
- 是否存在每个主题的生产者数量上限?
- Producers的数量对Kafka性能有影响吗?如果是,如何?
- 生产者的最佳做法是什么?每个应用程序一个同步生产者,一个异步生产者,还是一个自定义的同步生产者池?
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)
很大程度上取决于您的用例,我不清楚。大多数情况下,异步 > 同步。如果您选择使用异步,那么您必须处理对生产者进行批处理的风险(即数据丢失),以及与为批处理构建足够的消息/等待批处理超时触发相关的延迟。如果您的用例要求足够高,这些延迟可能会很严重。
我有一个将消息放入 Kafka 主题的 Web 应用程序。这个应用程序有很多实例 (200),每个实例都包含它自己的 Kafka Producer。
问题:
- 是否存在每个主题的生产者数量上限?
- Producers的数量对Kafka性能有影响吗?如果是,如何?
- 生产者的最佳做法是什么?每个应用程序一个同步生产者,一个异步生产者,还是一个自定义的同步生产者池?
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)
很大程度上取决于您的用例,我不清楚。大多数情况下,异步 > 同步。如果您选择使用异步,那么您必须处理对生产者进行批处理的风险(即数据丢失),以及与为批处理构建足够的消息/等待批处理超时触发相关的延迟。如果您的用例要求足够高,这些延迟可能会很严重。