Перейти до вмісту

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
Репозиторійgithub.com/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.

Посилання

[ред. | ред. код]