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