Skip to content

galadeat/go-kafka-broker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minimal Kafka Broker in Go

Учебная реализация минимального 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.

About

Kafka broker implementation in Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages