Встречается на собеседованиях • сегодня

Какая очередность сообщений в Kafka

В Kafka порядок сообщений гарантируется только в пределах одного партиции. В рамках партиции сообщения упорядочены по их offset (монотонно возрастающий номер).

Между партициями порядок не гарантируется, так как продюсер может отправлять сообщения в разные партиции параллельно.

Пример с кодом:

python
from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers='localhost:9092')

# Сообщения в одной партиции будут упорядочены
producer.send('topic', key=b'same_key', value=b'message1') 
producer.send('topic', key=b'same_key', value=b'message2')

# Сообщения с разными ключами могут попасть в разные партиции и порядок не гарантируется
producer.send('topic', key=b'key1', value=b'messageA')
producer.send('topic', key=b'key2', value=b'messageB')

Для строгого порядка всех сообщений используйте:

  1. Топик с одной партицией
  2. Указание одинакового ключа для связанных сообщений
  3. Ожидание подтверждения перед отправкой следующего сообщения (acks='all')
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы