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

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

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

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

gRPC для Go: от proto до production-сервиса

gRPC — де-факто стандарт общения между микросервисами: HTTP/2, protobuf, четыре вида вызовов, стриминг в обе стороны. Курс проходит весь путь: синтаксис proto3, кодогенерация, сервер и клиент, перехватчики, безопасность, дедлайны и балансировка.

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

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

  • Писать .proto-схемы и генерировать код
  • Реализовывать unary и streaming сервисы
  • Управлять метаданными, дедлайнами и отменами
  • Строить interceptors для логов и аутентификации
  • Настраивать TLS и token-аутентификацию
  • Диагностировать ошибки через статус-коды

Для кого курс

  • Бэкендерам и platform-инженерам
  • Тем, кто строит микросервисы
  • Разработчикам API с высокой нагрузкой

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

  • Уверенный Go
  • Основы HTTP/2 будет плюсом

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

  1. 1Введение в RPC и gRPCМодель RPC, место gRPC, HTTP/2 и protobuf.~15 мин · что такое grpc, rpc go
  2. 2Protocol Buffers: синтаксис proto3Сообщение, поля, enum, oneof, map, сервисы.~22 мин · proto3 синтаксис, protobuf типы
  3. 3Установка и кодогенерация protocprotoc-gen-go, protoc-gen-go-grpc, сборка.~20 мин · protoc go, кодогенерация grpc
  4. 4Первый gRPC-серверgrpc.NewServer, регистрация, Listen.~20 мин · grpc сервер go, grpc hello world
  5. 5gRPC-клиентgrpc.NewClient, вызов, обработка ошибки.~18 мин · grpc клиент go, grpc client
  6. 6Типы вызовов: unaryЗапрос-ответ, таймауты, простые ошибки.~18 мин · grpc unary, unary call
  7. 7Server streamingСервер шлёт поток сообщений, чтение через Recv.~22 мин · grpc server streaming, стрим сервер go
  8. 8Client streamingКлиент шлёт поток, SendAndClose, агрегация.~22 мин · grpc client streaming, стрим клиент go
  9. 9Bidirectional streamingПолный дуплекс, горутины чтения/записи, чат.~24 мин · grpc bidi streaming, дуплекс grpc
  10. 10Метаданные и контекстmd.Pairs, чтение заголовков, авторизация-токены.~18 мин · grpc metadata, метаданные grpc
  11. 11Перехватчики: interceptorsUnaryInterceptor, StreamInterceptor, цепочки.~22 мин · grpc interceptors, перехватчики grpc
  12. 12Аутентификация: TLS и токеныmTLS, credentials, insecure-режим только для dev.~22 мин · grpc tls, mtls go
  13. 13Обработка ошибок и статус-кодыstatus.Error, codes.*, details, обработка на клиенте.~20 мин · grpc ошибки, status codes grpc
  14. 14Дедлайны и отменыcontext deadline, распространение отмены.~20 мин · grpc deadline, таймауты grpc
  15. 15Повторы и ретраиService config, retry policy, идемпотентность.~20 мин · grpc retry, ретраи grpc
  16. 16Load balancingClient-side LB, resolver, round_robin, pickfirst.~20 мин · grpc load balancing, балансировка grpc
  17. 17Health checking protocolgrpc_health_v1, probes, интеграция с k8s.~18 мин · grpc health check, health protocol
  18. 18Рефлексия сервераgrpcurl, серверная рефлексия, отладка.~16 мин · grpc reflection, grpcurl
  19. 19Сериализация: оптимизация protoПоля, backward compatibility, сжатие.~20 мин · оптимизация protobuf, версии proto
  20. 20Версионирование APIПакеты и версии, эволюция схем.~18 мин · версионирование grpc, evolution proto
  21. 21Тестирование gRPC-сервисовbufconn, тесты хендлеров и стримов.~20 мин · тестирование grpc, bufconn
  22. 22Производительность и тюнингKeepalive, message size, компрессия.~20 мин · производительность grpc, тюнинг grpc
  23. 23gRPC в микросервисной архитектуреGateway-паттерны, облако, service mesh обзор.~20 мин · grpc микросервисы, service mesh
  24. 24Развертывание и проксированиеEnvoy, grpc-web, ingress.~20 мин · grpc web, envoy grpc
  25. 25Итоговый проект: чат и файловый сервисBidi-чат + стриминговая передача файлов.~30 мин · grpc проект, чат grpc

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

Нужен ли protoc или достаточно buf?

protoc — классика; buf удобнее (линт, breaking changes). В курсе используем protoc, в курсе Connect — buf.

gRPC работает в браузере?

Напрямую нет — нужен grpc-web или Connect. Оба варианта разбираются в отдельных уроках.