Вопросы на собеседовании в Funflow (ООО "Мобильные игровые решения")
10 вопросов с собеседований в Funflow (ООО "Мобильные игровые решения")
10 вопросов1632 компании353 технологии
Что проверяют на интервью
Как устроена подборка
Подборка объединяет вопросы, отмеченные на этапах интервью в Funflow (ООО "Мобильные игровые решения"). Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: kafka, rabbitmq, celery.
Outbox атомарно сохраняет бизнес-изменение и запись о будущем событии в одной БД-транзакции. Отправка в брокер выполняется отдельно; паттерн не делает commit БД и сетевую отправку одной атомарной операцией.
Сообщение помещают в очередь задержки без consumers, задают message TTL и DLX на рабочий exchange. После истечения TTL оно направляется в рабочую очередь, где его получает обработчик.
Для PostgreSQL Debezium получает поток через logical decoding и replication slot, преобразует изменения строк в события и передаёт их в Kafka. Обычно сначала выполняется согласованный начальный snapshot.
Передавайте стабильный ID и минимальные сериализуемые параметры, а ORM-объект загружайте в worker. Объект может быть тяжёлым, устаревшим и связанным с уже закрытой сессией.
Quorum Queues используют Raft: лидер согласует реплицируемые изменения с большинством. Старые Mirrored Queues имели другой механизм репликации; классическое зеркалирование удалено в RabbitMQ 4.0.
Сначала отличите утечку живых объектов от фрагментации и удержания памяти allocator. Для prefork Celery полезна плановая замена дочерних процессов по числу задач или объёму памяти, но это не исправляет причину.
При увеличении числа партиций формула hash(key) % N может направить новые сообщения того же ключа в другую партицию. Старые записи остаются на прежнем месте, поэтому сквозной порядок по ключу нарушается.
acks_late в Celery откладывает подтверждение до выполнения задачи. Если эффект уже произошёл, а подтверждение потерялось, брокер может доставить задачу повторно.
Prefetch Count ограничивает число сообщений, доставленных потребителю, но ещё не подтверждённых. Слишком малое значение оставляет простаивающие ресурсы, слишком большое ухудшает баланс и расход памяти.
Rebalance перераспределяет partitions между участниками consumer group. Долгая обработка может нарушить допустимый интервал poll или heartbeat, и consumer перестанут считать работоспособным.