Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: unary, streaming, server streaming, client, bidirectional

Какие существуют типы вызовов в gRPC?

Этот вопрос проверяет знание моделей общения между клиентом и сервером в gRPC.

Короткий ответ

gRPC поддерживает четыре вида вызовов: одиночный RPC (Unary) — один запрос/ответ, серверный стриминг — один запрос, поток ответов, клиентский стриминг — поток запросов, один ответ, и двунаправленный стриминг (Bidirectional) — поток запросов и поток ответов.

Длинный ответ

Unary RPC:

  • Клиент отправляет одно сообщение, получает одно сообщение.

Server Streaming RPC:

  • Клиент отправляет одну просьбу, получает поток ответов (stream).

Client Streaming RPC:

  • Клиент отправляет поток запросов, сервер возвращает одну ответку.

Bidirectional Streaming RPC:

  • Оба потока работают независимо, сообщения обмениваются асинхронно.

Пример в .proto:

rpc GetData(Request) returns (Response);              // Unary
rpc ListData(Request) returns (stream Response);     // Server streaming
rpc UploadData(stream Request) returns (Response);   // Client streaming
rpc Chat(stream Message) returns (stream Message);   // Bidirectional

Когда использовать:

  • Стриминг для больших данных, двунаправленный — для чатов и real-time.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    1

  • Сложность:

    7

Навыки

  • Golang

    Golang

Ключевые слова

#unary

#streaming

#server streaming

#client

#bidirectional

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.