Учебная реализация минимального Kafka‑брокера на языке Go.
Проект создан в рамках практики по сетевому программированию и бинарным протоколам.
- Разобраться с Kafka Wire Protocol на низком уровне.
- Научиться сериализовывать и десериализовывать бинарные данные.
- Реализовать обработку базовых API Kafka.
- Подготовить архитектуру для добавления новых API.
- TCP‑сервер на
0.0.0.0:9092
. - Обработка запроса
ApiVersions
(v4). - Архитектура с разделением на пакеты:
protocol
— структуры, сериализация, константы.handlers
— обработчики API.server
— сетевой слой и маршрутизация.
- Go — язык реализации.
- TCP Networking — работа с низкоуровневыми сокетами, чтение/запись бинарных данных.
- Kafka Wire Protocol — реализация формата сообщений и API.
go run ./cmd/main.go
После запуска брокера можно отправить ему тестовый запрос ApiVersions
через netcat
:
echo -n "00000023001200040183eb7d00096b61666b612d636c69000a6b61666b612d636c6904302e3100" | xxd -r -p | nc localhost 9092 | hexdump -C
Ожидаемый ответ: корректный пакет ApiVersions с тем же Correlation ID.