Не удается настроить группу потребителей в Кафке с Python - PullRequest
0 голосов
/ 19 марта 2019

Я новичок в Kafka и пробовал пакет Kafka-Python.

Мне удалось настроить простого производителя и потребителя, который может отправлять и получать сообщения.В этом случае потребитель не использует группу потребителей, как показано ниже:

consumer = KafkaConsumer(queue_name, bootstrap_servers='kafka:9092')

Однако, когда я начал использовать идентификатор_группы, как показано ниже, он прекращает получать любые сообщения:

consumer = KafkaConsumer(bootstrap_servers='kafka:9092', auto_offset_reset='earliest', group_id='my-group')
consumer.subscribe([queue_name])

ДляДля сравнения я также попробовал пакет confluent-kafka-python, в котором у меня есть следующий потребительский код, который также не работает:

consumer = Consumer({
    'bootstrap.servers': 'kafka:9092',
    'group.id': 'mygroup',
    'auto.offset.reset': 'earliest'
})
consumer.subscribe([queue_name])

Также выполнение ./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list дает пустой результат.

Какая конфигурация мне здесь не хватает?

1 Ответ

0 голосов
/ 19 марта 2019

По умолчанию потребитель начинает потреблять с последних принятых смещений, что, вероятно, является последним смещением в вашем случае.

auto.offset.reset применяется только тогда, когда нет смещенных подтверждений.Поскольку по умолчанию потребитель автоматически фиксирует смещения, он обычно применяется только при первом запуске (есть несколько других случаев, но они не имеют значения в этом примере).

Итак, чтобы увидеть поток сообщений, вынужно либо начать производство после запуска вашего потребителя, либо использовать другое имя группы, чтобы разрешить применение auto.offset.reset.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...