Встречается на 2% собеседований по Java

Как достичь гарантию порядка в Kafka

В Kafka порядок сообщений гарантируется только в пределах одного партиции. Для обеспечения порядка:

  1. Используйте одинаковый ключ (key) для связанных сообщений - они попадут в одну партицию:
java
ProducerRecord<String, String> record = 
    new ProducerRecord<>("topic", "sameKey", "message");
  1. Настройте max.in.flight.requests.per.connection=1 в продюсере, чтобы избежать переупорядочивания при ретраях.

  2. Для консьюмера:

  • Используйте один тред на партицию
  • Обрабатывайте сообщения последовательно
  • Отключайте параллельную обработку (enable.auto.commit=false)

Важно: при увеличении количества партиций порядок между ними не гарантируется. Для глобального порядка потребуется single-partition топик, что снижает пропускную способность.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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