Проектная лаборатория

Собственная Kafka

0 / 25этапов пройдено

Этап 11 · Список разделов

Список для нескольких разделов

Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.

На этом этапе вы реализуете ответ DescribeTopicPartitions для топика с несколькими разделами.

Обработка нескольких разделов

Если у топика несколько разделов, каждому соответствует отдельная запись в массиве partitions. Структура записи раздела остаётся такой же, как на предыдущих этапах.

На этом этапе вы вернёте метаданные топика с двумя разделами. Для каждого нужна отдельная запись с правильным partition_index.

Тесты

Тестирующая система запустит вашу программу следующим образом:

$ ./your_program.sh /tmp/server.properties

Затем отправит запрос DescribeTopicPartitions (v0) для топика с двумя разделами.

Она проверит, что:

  • Поле message_size правильно отражает размер заголовка и тела.
  • Идентификатор корреляции в заголовке ответа совпадает с идентификатором в заголовке запроса.
  • Поле error_code записи топика равно 0 (нет ошибки).
  • Ответ является корректным ответом DescribeTopicPartitions (v0).
  • Поле topic_name совпадает с именем топика из запроса.
  • Поле topic_id совпадает с настоящим UUID из метаданных кластера.
  • Массив partitions содержит ровно две записи разделов.
  • Обе записи разделов содержат error_code, равное 0 (нет ошибки).
  • Каждое значение partition_index совпадает с настоящим идентификатором раздела из метаданных.
  • Значение next_cursor равно -1 (null).

Примечания

Проверка в вашей IDE

Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.

Настройка проекта и IDE

1. Создайте проект один раз

node '/opt/graphlms/tools/project-lab/cli.mjs' init kafka ./my-kafka --language go

2. Откройте папку в IDE

cd ./my-kafka

Реализуйте требования этапа в созданном проекте.

Запустите из папки проекта

node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage ku4

Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.

Результат проверки

go / ЛОКАЛЬНО

Подключение к локальной проверке…

Здесь появится результат

Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.

GraphLMS — инженерная лаборатория роста