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

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

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


person Hel    schedule 20.09.2017    source источник


Ответы (2)


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

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

Конфигурации потребителей Kafka: https://kafka.apache.org/documentation/#consumerconfigs

person Liju John    schedule 20.09.2017

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

partition = TopicPartition('myTopic', 0)
self.consumer = KafkaConsumer(...)
self.consumer.assign([partition])
person Mohammad Sadegh    schedule 14.08.2018