分配给消费者的分区

问题描述 投票:0回答:1

是否有一种方法可以强迫kafka始终满足单个分区的消费者。即使消费者崩溃,导致重新平衡-我们也必须以某种方式确保消费者所满足的不只是一个分区。这是为了避免我们的业务聚合和容错逻辑中的复杂性-试图迎合动态/不可预测的分区数量。

apache-kafka kafka-consumer-api
1个回答
0
投票

我认为您不能使用订阅方式在消费者组中进行自动重新平衡来处理它。我看到了不同的问题。如果您的主题包含X个分区,则需要在相同的使用者组中使用X个使用者,以使每个使用者获得一个分区。在启动过程中,可能会发生其他使用者启动时,其中一个使用者获得多个分区的情况。当一个或多个消费者崩溃时,仍然活着的消费者中的一个会得到更多的分区,而死者则会恢复,这也可能发生。您不能保证一个消费者-每一刻都有一个分区。因此,唯一的方法是使用分配而不是订阅(http://kafka.apache.org/24/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#assign-java.util.Collection-)。请注意,通过这种方式,您必须指定分区,并且没有开箱即用的自动重新平衡功能。

© www.soinside.com 2019 - 2024. All rights reserved.