
gRPC
Protocol Buffers, сервіси gRPC, streaming, interceptor'и, обробка помилок, metadata
1Що таке gRPC?
Що таке gRPC?
Відповідь
gRPC — це RPC-фреймворк (Remote Procedure Call) з відкритим кодом, розроблений Google, який використовує HTTP/2 як транспортний протокол і Protocol Buffers як стандартний формат серіалізації. На відміну від REST, що використовує JSON і HTTP/1.1, gRPC забезпечує кращу продуктивність завдяки бінарному формату Protocol Buffers і розширеним можливостям HTTP/2 (multiplexing, стиснення заголовків, server push). gRPC широко використовується для комунікації між мікросервісами, оскільки нативно підтримує двонапрямлений streaming, генерацію коду клієнта/сервера та сувору типізацію.
2Яка основна роль Protocol Buffers у gRPC?
Яка основна роль Protocol Buffers у gRPC?
Відповідь
Protocol Buffers (protobuf) — це мова визначення інтерфейсу (IDL) і бінарний формат серіалізації, що використовується за замовчуванням у gRPC. Він дозволяє визначати структуру повідомлень і сервісів у файлах .proto, які потім компілюються для автоматичної генерації коду клієнта та сервера різними мовами. Бінарний формат protobuf у 3–10 разів компактніший за JSON і забезпечує значно вищу продуктивність серіалізації/десеріалізації (до 20 разів швидше). Це робить gRPC особливо придатним для високочастотної комунікації між мікросервісами.
3Яка різниця між викликом gRPC Unary і викликом Server Streaming?
Яка різниця між викликом gRPC Unary і викликом Server Streaming?
Відповідь
Виклик Unary — це найпростіший тип виклику gRPC: клієнт надсилає один запит і отримує одну відповідь, подібно до класичного HTTP REST-запиту. Виклик Server Streaming дозволяє клієнту надіслати один запит, але отримати потік (stream) із кількох відповідей від сервера. Наприклад, API сповіщень може використовувати Server Streaming, щоб надсилати клієнту кілька оновлень без необхідності опитування (polling). Це зменшує затримку та мережеве навантаження порівняно з повторюваними викликами Unary.
Який Go-пакет використовується для створення сервера gRPC?
Як визначити сервіс gRPC у файлі .proto?
+19 питань зі співбесід
Інші теми співбесід Go
Основи Go
Структури даних Go
Інтерфейси Go
Обробка помилок
Основи goroutines
Channels
Go Modules
HTTP-сервер
HTTP-клієнт
Кодування JSON
Database/SQL
Пакет context
Testing
Патерни конкурентності
Примітиви синхронізації
Веб-фреймворки Go
Проєктування REST API
Reflection
Керування пам'яттю
Оптимізація продуктивності
Generics
Go Design Patterns
Microservices
Безпека та автентифікація
Docker & Containerization
Kubernetes Basics
Просунутий Go
Розробка CLI
Опануй Go для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно