Рубрики
Без рубрики

rpc против REST Лучше ли gRPC, чем REST? Где его использовать?

С возвращением, все! В этой лекции мы рассмотрим некоторые примеры использования gRPC и то, как это делается… Помечено как grpc, новички, go, java.

С возвращением, все! В этой лекции мы рассмотрим некоторые примеры использования gRPC и то, как он сравнивается с REST.

Вот ссылка на полный плейлист курса gRPC на Youtube репозиторий Github: pc book-go и книга для ПК-java Репозиторий Gitlab: pc book-go и компьютерная книга- Ява

Типы стеклопластика

Существует 4 типа стеклопластика:

Самый простой из них – одинарный, когда клиент отправляет 1 единственное сообщение с запросом, а сервер отвечает 1 единственным ответом. Это выглядит несколько похоже на обычный HTTP REST API.

Затем у нас есть потоковая передача клиентов. В этом сценарии клиент отправит поток из нескольких сообщений и ожидает, что сервер отправит только 1 единственный ответ.

Аналогично, у нас есть потоковая передача с сервера, когда клиент отправляет только 1 сообщение с запросом, а сервер отвечает потоком из нескольких запросов.

И, наконец, двунаправленная (или двунаправленная) потоковая передача. Этот вариант является наиболее сложным, потому что клиент и сервер будут продолжать отправлять и получать несколько сообщений параллельно и в произвольном порядке. Он очень гибкий и не блокируется, что означает, что сторонам не нужно ждать ответа перед отправкой следующих сообщений.

Это очень высокоуровневый обзор 4 различных способов коммуникации в gRPC. Мы вернемся к этому позже на практической лекции, где мы будем применять каждый из них, чтобы получить гораздо более глубокое понимание.

rpc против REST

Теперь давайте проведем краткое сравнение rpc и REST, чтобы увидеть их различия.

Во-первых, rpc использует HTTP/2, который, как вы знаете, намного быстрее, чем HTTP/1.1, используемый в REST по умолчанию. Обратите внимание, что сегодня мы также можем включить HTTP/2 в REST, но обычно он часто используется с HTTP/1.1. Вы можете прочитать больше о том, как включить HTTP/2 для REST в этих статьях:

Во-вторых, gRPC использует буфер протокола для сериализации данных полезной нагрузки, которые являются двоичными и меньшими, в то время как REST использует JSON, который является текстом и больше.

Контракт API в crpc является строгим и должен быть четко определен в файле прототипа. В состоянии ПОКОЯ он часто бывает свободным и необязательным. Мы можем определить его с помощью открытого API, если захотим, но это не обязательно.

Генерация кода встроена в gRPC с помощью компилятора буфера протокола. Находясь в состоянии ПОКОЯ, мы должны использовать сторонние инструменты, такие как Open API и Swagger.

Как rpc, так и REST-коммуникации защищены с помощью TLS/SSL.

Потоковая передача является двунаправленной в gRPC, в то время как в REST только 1 способ запроса от клиента к серверу.

Так что gRPC лучше, чем REST, для большинства вещей, о которых мы упоминали до сих пор. Тем не менее, есть одна вещь, в которой ОТДЫХ все равно лучше,

Это поддержка браузера. В то время как REST полностью поддерживается всеми браузерами, поддержка gRPC ограничена и требуется gRPC-web с прокси-уровнем для преобразования между HTTP/1 и HTTP/2.

Где использовать gRPC?

Таким образом, gRPC обладает большой силой, но у него также есть свои слабые стороны. Итак, где и когда мы должны использовать gRPC, чтобы в полной мере воспользоваться его преимуществами?

Как вы могли догадаться, микросервисы – это то, где gRPC действительно сияет, поскольку он обеспечивает связь с низкой задержкой и высокой пропускной способностью, а также надежные контракты API.

gRPC также подходит для многоязычных сред, поскольку он обеспечивает генерацию кода “из коробки” для многих языков программирования.

Связь точка-точка в режиме реального времени также является хорошим местом для gRPC, поскольку она отлично поддерживает двунаправленную потоковую передачу.

И, наконец, gRPC – отличный выбор для среды с ограниченными сетевыми возможностями, такой как мобильное приложение (android/ios), благодаря своему легкому формату сообщений.

Хорошо, итак, теперь вы закончили все теоретические лекции курса gRPC. Поздравляю! Надеюсь, вам это понравится и я увижу вас на практических лекциях.

Если вам понравилась статья, пожалуйста подпишитесь на наш канал Youtube и следите за нами в Твиттере для получения дополнительных учебных пособий в будущем.

Если вы хотите присоединиться ко мне в моей нынешней удивительной команде в Voodoo, ознакомьтесь наши вакансии здесь . Удаленно или на месте в Париже/Амстердаме/Лондоне/Берлине/Барселоне с визовым спонсорством.

Оригинал: “https://dev.to/techschoolguru/is-grpc-better-than-rest-where-to-use-it-3blg”