Встречается на собеседованиях • сегодня
Как обеспечить порядок сообщений при записи без ключа в Kafka
Для обеспечения порядка сообщений в Kafka без ключа можно использовать следующие подходы:
- Использование одного партиции: Если все сообщения отправляются в одну партицию, Kafka гарантирует порядок в пределах этой партиции. Однако это ограничивает параллельность обработки.
python
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='localhost:9092')
topic = 'ordered_topic'
Все сообщения в одну партицию (partition=0)
producer.send(topic, value=b'message1', partition=0)
producer.send(topic, value=b'message2', partition=0)
producer.flush()
text
2. **Глобальная последовательность**: Использовать внешний сервис (например, Redis или БД) для генерации последовательных ID и использовать их как ключи.
3. **Ограничение producer'ов**: Разрешить только одному producer'у записывать в топик.
Важно: без ключа Kafka распределяет сообщения по партициям раунд-робин, что нарушает порядок. Поэтому для гарантированного порядка либо используйте ключи, либо одну партицию.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы