Этот вопрос проверяет знание механизма динамического получения информации о сервисах gRPC.
Reflection в gRPC — это сервис, который позволяет клиентам динамически узнать зарегистрированные сервисы, методы и структуры сообщений без .proto файлов. Клиент может через Reflection API получить список доступных RPC, их сигнатуры и запрашивать типы сообщений, что удобно для отладки и динамических клиентов.
gRPC Server Reflection:
Подключается как обычный сервис в сервере:
reflection.Register(grpcServer)Reflection API:
Методы ServerReflectionInfo возвращают FileDescriptorProto.
Клиенты:
Инструменты grpcurl, Postman, динамические клиенты на Go могут вызывать Reflection.
Преимущества:
Нет необходимости хранить локально .proto.
Подходит для интроспекции в рантайме и отладки.
Ограничения:
Небезопасно включать в продакшн без авторизации.
Увеличивает поверхность атаки.