Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: reflection, introspection, descriptor, grpcurl, dynamic client

Что такое отражение (Reflection) в gRPC?

Этот вопрос проверяет знание механизма динамического получения информации о сервисах gRPC.

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

Reflection в gRPC — это сервис, который позволяет клиентам динамически узнать зарегистрированные сервисы, методы и структуры сообщений без .proto файлов. Клиент может через Reflection API получить список доступных RPC, их сигнатуры и запрашивать типы сообщений, что удобно для отладки и динамических клиентов.

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

gRPC Server Reflection:

  • Подключается как обычный сервис в сервере:

reflection.Register(grpcServer)

Reflection API:

  • Методы ServerReflectionInfo возвращают FileDescriptorProto.

Клиенты:

  • Инструменты grpcurl, Postman, динамические клиенты на Go могут вызывать Reflection.

Преимущества:

  • Нет необходимости хранить локально .proto.

  • Подходит для интроспекции в рантайме и отладки.

Ограничения:

  • Небезопасно включать в продакшн без авторизации.

  • Увеличивает поверхность атаки.

  • Аватар

    Golang Guru

    Maxim Lukyanov

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

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Golang

    Golang

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

#reflection

#introspection

#descriptor

#grpcurl

#dynamic client

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

  • Аватар

    Golang Guru

    Maxim Lukyanov

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