Как вручную назначить разделы, сохраняя возможность автоматической фиксации?

Я пытаюсь вручную назначить разделы для каждого потребителя в группе потребителей. Однако, когда вы добавляете потребителей в группу, Kafka (или, по крайней мере, kafka-python) предполагает, что вы хотите, чтобы координатор группы выполнял все назначения. Есть ли способ сохранить все преимущества использования группы потребителей (в частности, автокоммит) при возможности вручную назначать разделы? Могу ли я написать собственный разделитель разделов?

Я использую библиотеку kafka-python 1.3.3.

2 ответа

Да, потребитель Kafka имеет свойство "partition.assignment.strategy", где вы можете указать свой собственный пользовательский Assignor, по умолчанию это RangeAssignor

Автоматическая фиксация также зависит от свойства "enable.auto.commit"

Конфиги для пользователей Kafka: https://kafka.apache.org/documentation/

Ты можешь использовать assign способ вручную назначить разделы потребителю. например:

partition = TopicPartition('myTopic', 0)
self.consumer = KafkaConsumer(...)
self.consumer.assign([partition])
Другие вопросы по тегам