Встречается на собеседованиях • сегодня
Как читать разные сообщения при трех Consumer в Kafka
В Kafka сообщения распределяются между партициями топика, и каждый Consumer в группе читает данные из своей партиции. Для балансировки нагрузки можно использовать:
- Групповой консьюминг – Consumers объединяются в группу (
group.id), и Kafka автоматически распределяет партиции между ними. Если Consumers больше, чем партиций, часть Consumers будет без работы.
Пример на confluent-kafka-python:
python
from confluent_kafka import Consumer
conf = {
'bootstrap.servers': 'localhost:9092',
'group.id': 'my_group',
'auto.offset.reset': 'earliest'
}
consumer = Consumer(conf)
consumer.subscribe(['my_topic'])
while True:
msg = consumer.poll(1.0)
if msg is None: continue
print(f"Consumer received: {msg.value()}")- Ручное назначение партиций – можно явно указать, какие партиции читать:
python
consumer.assign([TopicPartition('my_topic', 0)]) # Читаем только партицию 0Важно:
- Увеличьте количество партиций топика (
num.partitions), если Consumers больше, чем партиций. - Используйте
group.idдля автоматического балансирования. - Для строгого порядка сообщений используйте ключ (
key) при отправке – сообщения с одним ключом всегда попадают в одну партицию.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы