Spring Kafka 消费者 - 云端并发监听器与非并发监听器
Spring Kafka Consumers - Concurrent Listeners vs Non Concurrent Listeners in the Cloud
我使用 Spring Kafka 创建了一个 Kafka 消费者并将其部署在 Cloud Foundry 中。该主题有 10 个分区。我计划将应用程序扩展到 10 个实例,以便每个实例都可以使用来自一个分区的消息。 Spring Kafka 也支持并发消息侦听器容器,我猜它支持创建超过 1 个线程以从每个分区使用。因此,例如,如果我有 5 个消费者实例,每个消费者实例可能有 2 个线程分别从分区中消费。因为我无论如何都计划为每个分区创建 1 个应用程序实例,使用并发消费者有什么好处吗?
由于我的首要任务是快速处理主题中的消息,我认为为每个分区提供 1 个应用程序实例将为每个分区中的消息提供足够的资源来处理。
没错,同一个消费组中只需要有10个单线程消费者即可。由于您恰好有 10 个分区,因此 Kafka 中的重新平衡机制将在您的 10 个实例之间分配它们。
该容器中的并发将是不必要的。考虑改用 KafkaMessageListenerContainer
。
我使用 Spring Kafka 创建了一个 Kafka 消费者并将其部署在 Cloud Foundry 中。该主题有 10 个分区。我计划将应用程序扩展到 10 个实例,以便每个实例都可以使用来自一个分区的消息。 Spring Kafka 也支持并发消息侦听器容器,我猜它支持创建超过 1 个线程以从每个分区使用。因此,例如,如果我有 5 个消费者实例,每个消费者实例可能有 2 个线程分别从分区中消费。因为我无论如何都计划为每个分区创建 1 个应用程序实例,使用并发消费者有什么好处吗?
由于我的首要任务是快速处理主题中的消息,我认为为每个分区提供 1 个应用程序实例将为每个分区中的消息提供足够的资源来处理。
没错,同一个消费组中只需要有10个单线程消费者即可。由于您恰好有 10 个分区,因此 Kafka 中的重新平衡机制将在您的 10 个实例之间分配它们。
该容器中的并发将是不必要的。考虑改用 KafkaMessageListenerContainer
。