stringtranslate.com

гРПЦ

gRPC ( gRPC Remote Procedure Calls [2] ) — это кроссплатформенная высокопроизводительная среда удаленного вызова процедур (RPC). gRPC изначально была создана Google , но имеет открытый исходный код и используется во многих организациях. Варианты использования варьируются от микросервисов до «последней мили» вычислений (мобильные, веб и Интернет вещей). gRPC использует HTTP/2 для транспорта, буферы протоколов в качестве языка описания интерфейса и предоставляет такие функции, как аутентификация, двунаправленная потоковая передача и управление потоком , блокирующие или неблокирующие привязки, а также отмена и тайм-ауты. Он генерирует кроссплатформенные клиентские и серверные привязки для многих языков. Наиболее распространенные сценарии использования включают подключение сервисов в архитектуре стиля микросервисов или подключение клиентов мобильных устройств к бэкэнд-сервисам. [3]

Начиная с 2019 года использование gRPC HTTP/2 делает невозможным реализацию клиента gRPC в браузере, вместо этого требуется прокси-сервер. [4]

История

Примерно с 2001 года Google создала универсальную инфраструктуру RPC под названием Stubby для соединения большого количества микросервисов, работающих внутри и за пределами ее центров обработки данных . [5] В марте 2015 года Google решила создать следующую версию Stubby и сделать ее с открытым исходным кодом. Результатом стал gRPC.

Аутентификация

gRPC поддерживает использование Transport Layer Security (TLS) и аутентификации на основе токенов. Подключение к службам Google должно использовать TLS. Существует два типа учетных данных: учетные данные канала и учетные данные вызова.

Для авторизации на основе токенов gRPC предоставляет Server Interceptor [6] и Client Interceptor [7] .

Кодирование

gRPC использует буферы протоколов для кодирования данных. Буферы протоколов предоставляют формат сериализации и язык определения интерфейса. [8]

Тестирование

Некоторые программные инструменты, используемые для тестирования реализаций gRPC, включают Postman , ezy, [9] Insomnia и Step CI. [10]

Принятие

Многие организации используют gRPC, включая Uber , [11] Square , Netflix , IBM , CoreOS , Docker , CockroachDB , Arista Networks , Cisco , Juniper Networks , [12] Spotify , [13] Zalando , [14] Dropbox , [15] и Google как оригинальный разработчик.

Проект с открытым исходным кодом u-bmc использует gRPC для замены интеллектуального интерфейса управления платформой (IPMI). [16] 8 января 2019 года Dropbox объявила, что следующая версия «Courier», их фреймворка RPC, лежащего в основе их сервисно-ориентированной архитектуры (SOA), будет переведена на gRPC, в первую очередь потому, что она хорошо согласуется с их существующими пользовательскими фреймворками RPC. [17]

Альтернативы

Смотрите также

Ссылки

  1. ^ "gRPC releases". GitHub . Получено 2024-07-06 .
  2. ^ "FAQ". gRPC .
  3. ^ "О gRPC". gRPC . Получено 2021-05-25 .
  4. ^ "Состояние gRPC в браузере". gRPC . 8 января 2019 г.
  5. ^ "gRPC: настоящий фреймворк RPC интернет-масштаба теперь имеет версию 1.0 и готов к развертыванию в производственной среде". 24 августа 2016 г. Получено 03.04.2023 .
  6. ^ «Перехватчик сервера gRPC».
  7. ^ "gRPC". grpc.io . Получено 2020-02-24 .
  8. ^ JamesNK. "Сравнение служб gRPC с API HTTP". docs.microsoft.com . Получено 24.02.2020 .
  9. ^ "ezy на GitHub".
  10. ^ «Документация Step CI».
  11. ^ "gRPC в Uber". 19 мая 2021 г.
  12. ^ "gRPC". grpc.io . Получено 2020-02-24 .
  13. ^ "gRPC в Spotify" (PDF) . jfokus.se . Получено 2020-05-12 .
  14. ^ "Технический радар Zalando". opensource.zalando.com . Проверено 8 апреля 2021 г.
  15. ^ "Как мы перенесли Dropbox с Nginx на Envoy". Dropbox.Tech . Получено 2020-10-30 .
  16. ^ "u-bmc". GitHub.com . 5 октября 2022 г.
  17. ^ Нигматуллин, Руслан; Иванов, Алексей (2019-01-08). "Courier: Dropbox migration to gRPC" . Получено 2019-01-09 .

Внешние ссылки