Очереди, потоки, события
Partition в Kafka: тест на свободное воспроизведение
Воспроизведение по памяти эффективнее перечитывания. Для каждого промпта проговорите или запишите полный ответ из памяти, прежде чем открывать образцовый, — именно усилие припоминания закрепляет механизм.
Восстановите ключевые механизмы юнита — partitioner, порядок по key, назначение в consumer group, одностороннюю дверь и rebalance — не заглядывая обратно в урок.
- 01Какие три задачи hash(key) % N в дефолтном partitioner решает одновременно и почему их смешение порождает баги дизайна?
- 02Почему порядок по key в Kafka бесплатен и какова точная область действия гарантии порядка?
- 03Объясните, почему параллелизм consumer жёстко ограничен количеством partition.
- 04Почему увеличение количества partition в топике — это односторонняя дверь и какова безопасная альтернатива?
- 05Что такое stop-the-world rebalance, почему он болезненный и какие два механизма его уменьшают?
- 06Что такое hot-partition skew, почему больше partition и больше consumer его не исправляют и где настоящее исправление?
Если вы смогли восстановить каждый ответ по памяти, у вас есть стержень юнита: одна формула partitioner делает распределение, порядок и co-location сразу; порядок гарантирован только внутри partition; параллелизм consumer жёстко ограничен количеством partition; рост этого количества перехеширует key и ломает порядок по key, поэтому это односторонняя дверь, под которую закладывают запас или которую обходят миграцией; а два продакшен-сбоя — rebalance и hot-partition skew — укрощаются cooperative rebalancing плюс static membership и исправлением key, а не количества.