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

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

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

go-kit ~14 часов 25 уроковпродвинутый

go-kit: курс по микросервисному тулкиту для Go

go-kit — не фреймворк, а набор библиотек для микросервисов: endpoint как универсальная абстракция, транспорт как плагин, сквозные функции (логи, метрики, трейсинг) как middleware. Курс приучает мыслить слоями и строить сервисы, которые не разваливаются под нагрузкой.

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

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

  • Понимать архитектуру endpoint → transport → service
  • Оборачивать сервисы middleware: логи, метрики, трейсинг
  • Подключать HTTP и gRPC транспорты
  • Ставить rate limiting и circuit breaker
  • Работать с load balancer и discovery (Consul)
  • Собирать production-микросервис целиком

Для кого курс

  • Разработчикам микросервисов
  • Тем, кто перерос монолитный фреймворк
  • Инженерам, которые хотят понимание, а не магию

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

  • Уверенный Go (интерфейсы, горутины, контекст)
  • Основы HTTP и gRPC

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

  1. 1Философия go-kit и микросервисыТри слоя, принципы, когда go-kit уместен.~15 мин · что такое go kit, микросервисы go
  2. 2Endpoint: базовая абстракцияendpoint.Endpoint, обёртки, композиция.~20 мин · go kit endpoint, endpoint абстракция
  3. 3Service-слойЧистая бизнес-логика, интерфейсы сервиса.~18 мин · go kit service, слой сервиса
  4. 4Транспорт HTTPkithttp.NewServer, декодеры и энкодеры.~22 мин · go kit http, транспорт go kit
  5. 5Кодеки: JSON encoding/decodingКастомные ошибки, статусы, error encoder.~18 мин · go kit json, кодеки go kit
  6. 6Логированиеkitlog, уровни, контекстные логгеры.~18 мин · go kit логирование, kitlog
  7. 7Инструментирование метрикиPrometheus, request duration, counters.~20 мин · go kit метрики, prometheus go kit
  8. 8Tracing: OpenTracingJaeger, спаны через endpoint middleware.~20 мин · go kit tracing, jaeger go
  9. 9Rate limitingjuju/ratelimit, token bucket на endpoint.~18 мин · go kit rate limit, лимитер go kit
  10. 10Circuit breakersony/gobreaker, состояния, стратегии.~20 мин · circuit breaker go, gobreaker
  11. 11Load balancer и проксиround robin, random, retry стратегии.~20 мин · go kit load balancer, балансировка go kit
  12. 12Service discovery: ConsulРегистрация, lookup, инстинкты SD.~22 мин · go kit consul, service discovery go
  13. 13gRPC транспорт в go-kitgrpctrans.NewServer, proto-сервисы.~22 мин · go kit grpc, grpc transport
  14. 14Middleware endpointsЛоги/метрики как endpoint-обёртки.~18 мин · go kit endpoint middleware, обёртки endpoint
  15. 15Мидлвари сервисовДекораторы сервиса, инъекция зависимостей.~18 мин · go kit service middleware, декораторы сервиса
  16. 16Тестирование endpointsUnit-тесты endpoint и транспорта.~18 мин · тестирование go kit, endpoint тесты
  17. 17Структура go-kit проектаКаталоги, DI, шаблон большого сервиса.~20 мин · структура go kit, проект go kit
  18. 18Конфигурация сервисовenv, флаги, viper, секреты.~16 мин · конфигурация микросервисов, env go
  19. 19Graceful shutdownСигналы, остановка приемников, drain.~18 мин · graceful shutdown go, остановка сервиса
  20. 20Здоровье сервисов healthcheckliveness/readiness, kit healthcheck.~16 мин · healthcheck go kit, readiness go
  21. 21Асинхронные операцииАсинхронные endpoint-ы, горутины в сервисе.~20 мин · асинхронность go kit, async endpoint
  22. 22Публикация событийEvent publisher, NATS/Kafka-обзор.~20 мин · события микросервисы, event publisher go
  23. 23Безопасность: аутентификацияJWT на endpoint, токены между сервисами.~20 мин · аутентификация go kit, jwt микросервисы
  24. 24Развертывание микросервисовDocker, оркестрация, наблюдаемость.~20 мин · деплой микросервисов, docker go
  25. 25Итоговый проект: микросервис заказовПолный сервис: endpoint, метрики, breaker, gRPC.~30 мин · проект go kit, микросервис заказов

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

go-kit или Kratos/go-zero?

go-kit даёт строительные блоки без жёсткого каркаса: больше контроля, больше ручной работы. Фреймворки дают быстрый старт, но свои правила.

Актуален ли go-kit?

Да, он стабилен и используется в проде; третий пересмотр API остановился на endpoint как ядре.