Открытые уроки

Основы gRPC в Go

В этом уроке:
  • 00:00 — Введение
  • 00:36 — Разница HTTP/1.1 и HTTP/2
  • 06:19 — Protobuf
  • 23:02 — Взаимодействие по gRPC
  • 33:35 — Работа с gRPC на практике
  • 49:59 — gRPC плагины

Урок знакомит с основами gRPC в языке программирования Go — от установки до клиент-серверного взаимодействия. Вы узнаете, как gRPC используется для эффективной передачи данных по сети, как происходит сериализация структур через Protocol Buffers и как генерируется gRPC-код.

gRPC работает поверх HTTP/2 и предлагает низкую задержку и строгую типизацию данных. Протокол gRPC — это высокопроизводительное средство удалённого вызова процедур (RPC), где каждый запрос и ответ обрабатываются в бинарном виде. Такие структуры сообщений описываются в. proto файле, что делает их совместимыми с разными языками, включая Java, Go, Python и другие.

Вы научитесь:
  • Проектировать и создавать API через Protocol Buffers.
  • Быстро запускать gRPC-серверы и клиентов на Go.
  • Реализовывать надёжное взаимодействие между сервисами с поддержкой стриминга и ошибок.
  • Встраивать gRPC в web-среду и использовать его в production-микросервисной архитектуре.

Также рассматриваются подходы к описанию API, нюансы работы с контекстом, тайм-аутами, логированием и взаимодействием между сервисами с помощью разных типов вызовов (unary, server-side streaming, client-side streaming и bidirectional streaming).

Для тех, кто работает с REST-сервисами, этот урок покажет преимущества gRPC и Protobuf: компактность, производительность и удобство описания функций, которые вызываются удалённо.

Автор урока — Леонид Ченский, Team lead в Ozon tech, где он занимается разработкой инфраструктуры, которая позволяет получить ScyllaDB в облаке.

Теги: Микросервисы. Межсервисное взаимодействие. gRPC. REST. RPC. Remote procedure call. Удалённый вызов процедур. Protoc. Protobuf. Streaming. Golang. Go gRPC. GraphQL. Клиент-серверная архитектура. Использование gRPC в Go.