gRPC
Тип | Фреймворк RPC |
---|---|
Розробник | |
Перший випуск | Квітень 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]
- ↑ FAQ. gRPC. Архів оригіналу за 4 січня 2022. Процитовано 4 січня 2022.
- ↑ Introducing gRPC, a new open source HTTP/2 RPC Framework. Архів оригіналу за 4 січня 2022. Процитовано 4 січня 2022.
- ↑ а б About gRPC. gRPC (англ.). Архів оригіналу за 22 грудня 2020. Процитовано 25 травня 2021.
- ↑ JamesNK. Reliable gRPC services with deadlines and cancellation. docs.microsoft.com (амер.). Процитовано 4 січня 2022.
- ↑ The state of gRPC in the browser. gRPC (амер.). Архів оригіналу за 4 січня 2022. Процитовано 4 січня 2022.
- ↑ gRPC. grpc.io. Архів оригіналу за 4 січня 2022. Процитовано 24 лютого 2020.
- ↑ JamesNK. Compare gRPC services with HTTP APIs. docs.microsoft.com (амер.). Процитовано 24 лютого 2020.
- ↑ gRPC. grpc.io. Архів оригіналу за 24 листопада 2020. Процитовано 24 лютого 2020.
- ↑ gRPC at Spotify (PDF). jfokus.se. Архів оригіналу (PDF) за 27 жовтня 2021. Процитовано 12 травня 2020.
- ↑ Zalando Tech Radar. opensource.zalando.com. Архів оригіналу за 20 жовтня 2021. Процитовано 8 квітня 2021.
- ↑ How we migrated Dropbox from Nginx to Envoy. Dropbox.Tech. Архів оригіналу за 4 січня 2022. Процитовано 30 жовтня 2020.
- ↑ u-bmc. GitHub.com. Архів оригіналу за 4 січня 2022. Процитовано 4 січня 2022.
- ↑ Nigmatullin, Ruslan; Ivanov, Alexey (8 січня 2019). Courier: Dropbox migration to gRPC. Архів оригіналу за 12 березня 2020. Процитовано 9 січня 2019.
- Домашня сторінка gRPC [Архівовано 23 січня 2021 у Wayback Machine.]
- gRPC — github.com [Архівовано 4 січня 2022 у Wayback Machine.]
- gRPC — opensource.google.com
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |