На странице собраны вопросы по gRPC — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: backend, api, database.
Зачем нужен контекст в gRPC-запросах и что происходит после его отмены Контекст как инструмент управления жизненным циклом запроса в Go Передача дедлайнов, сигналов отмены и метаданных между клиентом и сервером…
Работа с HTTP в Go resp.Body представляет собой поток тела ответа Необходимо обязательно вызвать defer resp.Body.Close() В противном случае возникает утечка ресурсов, включая TCP-соединения TCP-соединения не…
Как устроена работа gRPC поверх HTTP/2? gRPC — фреймворк для RPC, использующий HTTP/2 HTTP/2 предоставляет двунаправленное мультиплексирование потоков для компактной передачи gRPC применяет кодирование в Protocol…
микросервисы — автономные сервисы, взаимодействующие через API REST: синхронное взаимодействие по HTTP/JSON, простая интеграция gRPC: синхронный и асинхронный обмен, бинарный протокол, высокая производительность…
Пошаговая отправка сообщения клиентом в gRPC-сервис gRPC — фреймворк для удалённого вызова процедур (RPC), работающий поверх HTTP/2 Клиент компилирует protobuf-файлы и получает локальный stub — клиентский код Затем…
Как корректно отменять горутины, выполняющие долгие операции? для управления долгими горутинными операциями в Go используется контекст следует применять context.Context вместе с отменой (CancelFunc) context нужно…
Как определить индексы, необходимые для оптимизации? Анализирую нагрузку: начинаю с наиболее часто выполняемых запросов и изучаю их планы выполнения с помощью EXPLAIN/ANALYZE Выявляю столбцы, используемые для…
механизм динамического получения метаданных сервера содержит сведения об описаниях сервисов, методов и сообщений реализуется специальным сервисом grpc.reflection.v1alpha.ServerReflection позволяет клиентам…
Как работает секционирование таблиц (table partitioning) в PostgreSQL? большая таблица разделяется на отдельные части — партиции каждая партиция представляет собой таблицу с собственным условием отбора, например…
Чем отличаются errors.Is, errors.As и errors.Join Улучшения работы с ошибками, появившиеся в Go 1.13 и более поздних версиях errors.Is определяет, присутствует ли в ошибке заданная целевая ошибка: сравнивает её через…
Индекс — это структура данных, предназначенная для ускорения поиска в БД На практике его часто строят на основе B-дерева или B+-дерева B-дерево сохраняет балансировку и обеспечивает логарифмическую сложность поиска…
Проектирование gRPC API с сохранением backward compatibility gRPC API описывается с помощью Protocol Buffers (proto) Не удаляйте существующие поля — добавляйте новые, назначая им уникальные номера для расширения схемы…