gRPC
Разработчик(и) | |
---|---|
Первоначальный выпуск | август 2016 г |
Стабильная версия | 1.64.2 [1] / 7 июня 2024 г |
Репозиторий | |
Написано в | Android Java, C# , C++ , Dart , Go , Java , Kotlin/JVM, Node.js , Objective-C, PHP , Python , Ruby |
Тип | удаленного вызова процедур Платформа |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | грпк |
gRPC ( вызовы удаленных процедур gRPC) [2] ) — это кроссплатформенная высокопроизводительная платформа удаленного вызова процедур (RPC) с открытым исходным кодом. Первоначально gRPC был создан компанией Google использовала единую инфраструктуру RPC общего назначения под названием Stubby для подключения большого количества микросервисов, работающих внутри и между своими центрами обработки данных . , которая примерно с 2001 года [3] В марте 2015 года Google решил выпустить следующую версию Stubby и сделать ее открытым исходным кодом. Результатом стал gRPC, который сейчас используется во многих организациях, помимо Google, для реализации сценариев использования от микросервисов до «последней мили» вычислений (мобильные устройства, Интернет и Интернет вещей). Он использует HTTP/2 для транспорта, протокольные буферы в качестве языка описания интерфейса и предоставляет такие функции, как аутентификация, двунаправленная потоковая передача и управление потоком , блокирующие или неблокирующие привязки, а также отмена и тайм-ауты. Он генерирует кроссплатформенные привязки клиента и сервера для многих языков. Наиболее распространенные сценарии использования включают подключение служб в архитектуре в стиле микросервисов или подключение клиентов мобильных устройств к серверным службам. [4]
Сложное использование HTTP/2 в gRPC делает невозможным реализацию клиента gRPC в браузере, вместо этого требуется прокси-сервер. [5]
Аутентификация [ править ]
gRPC поддерживает использование Transport Layer Security (TLS) и аутентификацию на основе токенов. Подключение к сервисам Google должно использовать TLS. Существует два типа учетных данных: учетные данные канала и учетные данные вызова.Для авторизации на основе токенов gRPC предоставляет серверный перехватчик. [6] и перехватчик клиентов. [7]
Кодировка [ править ]
gRPC использует буферы протокола для кодирования данных. Буферы протокола предоставляют формат сериализации и язык определения интерфейса. [8]
Тестирование [ править ]
Некоторые из программных инструментов, используемых для тестирования реализаций gRPC, включают Postman , ezy, [9] Бессонница и Шаг CI. [10]
Принятие [ править ]
Ряд различных организаций внедрили gRPC, например Uber , [11] Square , Netflix , IBM , CoreOS , Docker , CockroachDB , Arista Networks , Cisco , Juniper Networks , [12] Спотифай , [13] Заландо , [14] Дропбокс , [15] и Google как первоначальный разработчик.
Проект с открытым исходным кодом u-bmc использует gRPC для замены интеллектуального интерфейса управления платформой (IPMI). [16] 8 января 2019 года Dropbox объявил, что следующая версия Courier, их инфраструктуры RPC, лежащей в основе сервис-ориентированной архитектуры (SOA), будет переведена на основе gRPC, прежде всего потому, что она хорошо согласуется с их существующими пользовательскими технологиями. RPC-фреймворки. [17]
Альтернативы gRPC [ править ]
См. также [ править ]
Ссылки [ править ]
- ^ «выпуски gRPC» . Гитхаб . Проверено 10 июня 2024 г.
- ^ "ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ" . gRPC .
- ^ «gRPC: настоящая платформа RPC интернет-масштаба теперь имеет версию 1.0 и готова к промышленному развертыванию» . 24 августа 2016 г. Проверено 03 апреля 2023 г.
- ^ «О gRPC» . gRPC . Проверено 25 мая 2021 г.
- ^ «Состояние gRPC в браузере» . gRPC . 8 января 2019 г.
- ^ «Перехватчик сервера gRPC» .
- ^ «гРПК» . grpc.io. Проверено 24 февраля 2020 г.
- ^ ДжеймсНК. «Сравнение служб gRPC с API HTTP» . docs.microsoft.com . Проверено 24 февраля 2020 г.
- ^ «Эзи на GitHub» .
- ^ «Документация Step CI» .
- ^ «gRPC в Uber» . 19 мая 2021 г.
- ^ «гРПК» . grpc.io. Проверено 24 февраля 2020 г.
- ^ «gRPC в Spotify» (PDF) . jfokus.se . Проверено 12 мая 2020 г.
- ^ «Заландо Тех Радар» . opensource.zalando.com . Проверено 8 апреля 2021 г.
- ^ «Как мы мигрировали Dropbox с Nginx на Envoy» . Dropbox.Tech . Проверено 30 октября 2020 г.
- ^ "у-бмк" . GitHub.com . 5 октября 2022 г.
- ^ Нигматуллин, Руслан; Иванов, Алексей (08.01.2019). «Курьер: миграция Dropbox на gRPC» . Проверено 9 января 2019 г.