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 (en-us) . Процитовано 4 січня 2022.
  5. The state of gRPC in the browser. gRPC (en-us) . Архів оригіналу за 4 січня 2022. Процитовано 4 січня 2022.
  6. gRPC. grpc.io. Архів оригіналу за 4 січня 2022. Процитовано 24 лютого 2020.
  7. JamesNK. Compare gRPC services with HTTP APIs. docs.microsoft.com (en-us) . Процитовано 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.

Посилання[ред. | ред. код]