gRPC

gRPC
ТипФреймворк RPC
РозробникGoogle
Перший випускКвітень 2016
Стабільний випуск1.43.0 (17 грудня 2021)
Мова програмуванняAndroid Java, C#, C++, Dart, Go, Java, Kotlin/JVM, Node.js, Objective-C, PHP, Python, Ruby
ЛіцензіяApache 2.0
Репозиторійhttps://github.com/grpc/grpc, https://github.com/elixir-grpc/grpc
Вебсайтgrpc.io

gRPC (gRPC Remote Procedure Calls[1]), також відомий як Google Remote Procedure Call — це система віддаленого виклику процедур (RPC) з відкритим кодом, початково розроблена в Google у 2015 році як наступне покоління інфраструктури RPC Stubby.[2][3] Він використовує транспортний протокол HTTP/2, Protobuf як мову опису інтерфейсу та надає наступні функції: аутентифікація, двонапрямлена потокова передача та керування потоком, блокувальні та неблокувальні зв'язування, а також дедлайни та скасовування.[4] У його складі наявні міжплатформені клієнтські та серверні бібліотеки для багатьох мов. Найбільш поширені сценарії використання включають комунікацію сервісів в мікросервісній архітектурі або підключення клієнтських мобільних додатків до серверних.[3]

Складне використання у gRPC протоколу HTTP/2 унеможливлює реалізацію клієнта gRPC у браузері, тому замість цього комунікація відбувається через проксі-сервер.[5]

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

gRPC підтримує використання TLS та аутентифікації на основі токенів. Підключення до служб Google має використовувати TLS. Є два типи ідентифікаційних даних: для каналу та для виклику.[6]

Кодування

  gRPC використовує Protocol Buffers для кодування даних. На відміну від HTTP API з мовою опису інтерфейсу JSON, вони мають більш суворі специфікації. Завдяки єдиній специфікації gRPC усуває неоднозначності та заощаджує час розробника, оскільки gRPC є узгодженим для різних платформ та реалізацій.[7]

Використання

Низка різних організацій використовують gRPC, наприклад Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, Juniper Networks,[8] Spotify,[9] Zalando[10] і Dropbox.[11]

Проєкт з відкритим кодом u-bmc використовує gRPC для заміни IPMI.[12] 8 січня 2019 року Dropbox оголосив, що наступна версія «Courier», їх фреймворку RPC, що є ядром їхньої сервісно-орієнтованої архітектури (SOA), буде перенесена на базу gRPC, насамперед тому, що він добре відповідає їхнім спеціалізованим фреймворкам RPC, що наразі існують.[13]

Див. також

Примітки

  1. ↑ FAQ. gRPC. Архів оригіналу за 4 січня 2022. Процитовано 4 січня 2022.
  2. ↑ Introducing gRPC, a new open source HTTP/2 RPC Framework. Архів оригіналу за 4 січня 2022. Процитовано 4 січня 2022.
  3. ↑ а б About gRPC. gRPC (англ.). Архів оригіналу за 22 грудня 2020. Процитовано 25 травня 2021.
  4. ↑ JamesNK. Reliable gRPC services with deadlines and cancellation. docs.microsoft.com (амер.). Процитовано 4 січня 2022.
  5. ↑ The state of gRPC in the browser. gRPC (амер.). Архів оригіналу за 4 січня 2022. Процитовано 4 січня 2022.
  6. ↑ gRPC. grpc.io. Архів оригіналу за 4 січня 2022. Процитовано 24 лютого 2020.
  7. ↑ JamesNK. Compare gRPC services with HTTP APIs. docs.microsoft.com (амер.). Процитовано 24 лютого 2020.
  8. ↑ gRPC. grpc.io. Архів оригіналу за 24 листопада 2020. Процитовано 24 лютого 2020.
  9. ↑ gRPC at Spotify (PDF). jfokus.se. Архів оригіналу (PDF) за 27 жовтня 2021. Процитовано 12 травня 2020.
  10. ↑ Zalando Tech Radar. opensource.zalando.com. Архів оригіналу за 20 жовтня 2021. Процитовано 8 квітня 2021.
  11. ↑ How we migrated Dropbox from Nginx to Envoy. Dropbox.Tech. Архів оригіналу за 4 січня 2022. Процитовано 30 жовтня 2020.
  12. ↑ u-bmc. GitHub.com. Архів оригіналу за 4 січня 2022. Процитовано 4 січня 2022.
  13. ↑ Nigmatullin, Ruslan; Ivanov, Alexey (8 січня 2019). Courier: Dropbox migration to gRPC. Архів оригіналу за 12 березня 2020. Процитовано 9 січня 2019.

Посилання