Перейти к содержимому
ГоМастер

Поиск по урокам

Найдите урок, курс, термин или раздел

Kafka ~12 часов 25 уроковпрактика

Kafka в Go: полный курс по segmentio/kafka-go

Kafka — шина событий для систем, где потеря сообщения — инцидент: заказы, платежи, аудит, потоки между сервисами. Библиотека segmentio/kafka-go — самый «чистый Go» клиент: без librdkafka, без cgo, с простыми интерфейсами Reader и Writer.

Курс начинается с концепций (топики, партиции, оффсеты, группы) и доводит до продакшен-приёмов: ключи и партиционирование, коммиты и гарантии доставки, ретраи продюсера, ребалансировка, Reader API для сырых оффсетов, Admin API, мониторинг лага и эволюция схем. Каждый урок — код с построчным разбором, интерактив и честные грабли.

Чему научитесь

Чему научитесь

  • Понимать топики, партиции, оффсеты и группы консьюмеров
  • Писать продюсеры с ключами, батчами и ретраями
  • Читать сообщения группой с коммитами оффсетов
  • Выбирать гарантии: at-most-once, at-least-once
  • Создавать топики через Admin API и управлять ретеншеном
  • Мониторить лаг и безопасно эволюционировать схемы

Для кого курс

  • Backend-разработчикам, которые строят событийные системы
  • Тем, кто знает RabbitMQ и хочет понять отличие Kafka
  • Командам, переносящим потоки данных на шину событий

Что понадобится

  • Базовый синтаксис Go: горутины, контекст, ошибки
  • Желательно курс rabbitmq — будет с чем сравнивать

Программа курса: 25 уроков

  1. 1Знакомство: зачем шина событийОчереди против лога: чем Kafka отличается от RabbitMQ.~16 мин · kafka golang, зачем kafka
  2. 2Топики, партиции и оффсетыКак устроен брокер: append-only лог, реплики, смещения.~18 мин · топики партиции kafka, офсеты kafka
  3. 3Установка: kafka-go и локальный брокерgo get, docker-compose, первый топик и первый порт.~18 мин · kafka-go установка, kafka docker compose
  4. 4Первый продюсер: Writerkafka.NewWriter, WriteMessages и подключение к брокеру.~18 мин · kafka producer golang, kafka writer
  5. 5Ключи и порядок сообщенийХэш ключа, партиция, почему порядок внутри партиции.~20 мин · kafka ключ партиция, порядок сообщений kafka
  6. 6Первый консьюмер: Readerkafka.NewReader, ReadMessage и цикл чтения.~18 мин · kafka consumer golang, kafka reader
  7. 7Группы консьюмеровGroupID, распределение партиций, масштабирование.~20 мин · kafka consumer group, группы kafka go
  8. 8Коммиты оффсетов: CommitMessagesAuto-commit против ручного, потеря при перезапуске.~20 мин · kafka commit offset, автокоммит kafka
  9. 9Гарантии: at-most-once и at-least-onceПорядок коммита и обработки: выбираем осознанно.~20 мин · at least once kafka, гарантии доставки kafka
  10. 10Продюсер: батчи и производительностьBatchSize, BatchTimeout, Async: цена каждого.~20 мин · kafka batch producer, производительность kafka go
  11. 11Сериализация: JSON в сообщенияхСтруктуры, теги и общий пакет контрактов.~18 мин · kafka json golang, сериализация сообщений
  12. 12Ошибки продюсера и ретраиRequiredAcks, таймауты, что делать с непосланным.~18 мин · kafka producer errors, ретраи kafka
  13. 13Ребалансировка группыКто забрал партиции, BalanceStrategy, подвисания.~20 мин · kafka rebalance, ребалансировка go
  14. 14Reader API: чтение с оффсетаSetOffset, FirstOffset, LastOffset: без группы.~18 мин · kafka setoffset, reader api kafka
  15. 15Durability: acks и ISRRequiredAcks, min.insync.replicas: цена надёжности.~20 мин · kafka durability, acks min insync
  16. 16Admin API: топики из кодаCreateTopics, partitions, retention и конфиги.~18 мин · kafka admin api, создание топика go
  17. 17Retention и log compactionСколько живёт сообщение, сжатие по ключу.~18 мин · kafka compaction, retention kafka
  18. 18Контекст и таймауты в kafka-goDialTimeout, ReadLag, контекст отмены чтения.~16 мин · kafka контекст go, таймауты kafka
  19. 19Ошибки консьюмера и яд-сообщенияPoison message, DLQ-паттерн, повторяемость.~20 мин · kafka dlq, ядовитые сообщения kafka
  20. 20Тесты: изоляция по топикамУникальные топики на прогон, моки Writer и Reader.~18 мин · тесты kafka go, kafka тестирование
  21. 21Мониторинг: лаг консьюмераReadLag, статистика Writer, алерты на отставание.~18 мин · kafka lag мониторинг, лаг консьюмера
  22. 22Эволюция схем сообщенийВерсии, опциональные поля, обратная совместимость.~20 мин · эволюция схем kafka, версии сообщений
  23. 23Kafka и RabbitMQ: выбор под задачуПовторы, порядок, fanout: сравнение на кейсах.~18 мин · kafka vs rabbitmq, выбор брокера
  24. 24Грабли продакшена KafkaПерегруженные партиции, забытые коммиты, throttling.~18 мин · kafka продакшен, грабли kafka
  25. 25Итоговый проект: событийный пайплайнЗаказ → событие → два консьюмера → DLQ.~24 мин · kafka проект go, событийный пайплайн

Вопросы о курсе

Нужен установленный Kafka?

Нет: весь код разбирается в браузере с реалистичными сообщениями и сценариями. Для практики локально — docker-compose из третьего урока поднимает брокер одной командой.

Почему kafka-go, а не sarama или franz-go?

kafka-go — чистый Go с самым простым API: идеален для входа. Сравнение с sarama и franz-go — отдельный урок, где честно показаны границы каждого.

Курс про Kafka или про библиотеку?

Про то и другое: первые два урока — концепции брокера, дальше — только практика клиента. Без понимания партиций и оффсетов код не прочитается.