Klatch.media

Технологии

Roblox обрабатывает более 18 трлн внутренних сообщений в день через Kafka

Очереди данных обслуживают аналитику, модерацию и подбор матчей. Компания рассказала, как разделяет нагрузки и готовится к отказам оборудования.

Иллюстрация Roblox к техническому разбору платформы очередей Kafka
Roblox

Roblox сообщила, что её внутренняя платформа очередей на Apache Kafka обрабатывает более 18 трлн сообщений в день. Технический разбор опубликован 4 сентября. Эти сообщения обслуживают передачу данных внутри компании, включая аналитику, модерацию и системы подбора матчей.

По данным авторов материала, платформа обеспечивает доступность на уровне 99,995%. В течение двух последних лет её масштаб увеличивался более чем в 2,5 раза ежегодно. Roblox связывает рост пропускной способности с настройкой всего пути данных: от отправляющих программ до серверов и получателей.

Нагрузки разделяются по требованиям. Для подбора матчей компания указала задержку менее 10 миллисекунд от начала до конца обработки. При сборе аналитических событий допустима задержка в несколько секунд. Разделение помогает объёмной аналитике не вытеснять более чувствительные ко времени задачи во время пиков.

Часть серверов перевели с жёстких дисков на SSD, что увеличило пропускную способность дискового ввода-вывода в десять раз. Для оставшихся HDD компания начала менять схему хранения с RAID10 на RAID0. Этот переход сопровождался настройкой подтверждений записи и репликации, в том числе между регионами.

Roblox проверяет инфраструктуру через искусственно создаваемые отказы: отключение отдельных машин и стоек, сетевые проблемы и другие сценарии. Компания также держит резервный кластер Kafka. При отказе рабочего кластера программы можно переключить на него, сохранив дополнительную ёмкость для переносимой нагрузки.

Защита системы включает шифрование при передаче и хранении, разграничение доступа и автоматическое обновление учётных данных. Следующим направлением Roblox назвала новые промежуточные сервисы и управляемые соединения, которые должны упростить использование очередей внутренними командами разработки.