6个Kafka消费者处理每条消息时间较长时的最大吞吐量策略
Strategy for maximum throughput having 6 Kafka Consumers when the processing of each message requires a long time
考虑这种情况:具有 6 个分区的 Kafka 主题。 Spring Java 具有 6 个副本的 Kafka 消费者应用程序,因此每个副本都处理其中一个分区。
我面临的问题是消费者处理每条消息需要很长时间(~20 秒),因为它需要调用一个非常慢的外部系统。
因此,即使我已经配置了 6 个 partitions/replicas,我最终还是遇到了一个瓶颈,即 6 个消费者每条消息阻塞约 20 秒,这意味着每 20 秒有 6 条消息的吞吐量!!
考虑到我无法修改外部系统的行为,您能否建议加速此场景的方法?
增加每个实例的分区数和并发数。
分区数必须为>= instances * concurrency
。
考虑这种情况:具有 6 个分区的 Kafka 主题。 Spring Java 具有 6 个副本的 Kafka 消费者应用程序,因此每个副本都处理其中一个分区。
我面临的问题是消费者处理每条消息需要很长时间(~20 秒),因为它需要调用一个非常慢的外部系统。
因此,即使我已经配置了 6 个 partitions/replicas,我最终还是遇到了一个瓶颈,即 6 个消费者每条消息阻塞约 20 秒,这意味着每 20 秒有 6 条消息的吞吐量!!
考虑到我无法修改外部系统的行为,您能否建议加速此场景的方法?
增加每个实例的分区数和并发数。
分区数必须为>= instances * concurrency
。