Благодаря gRPC клиентскому приложению стало проще напрямую вызывать серверное приложение на другом компьютере, как если бы это был локальный объект. Идея gRPC заключается в определении службы с помощью методов в файле Protobuf, затем серверу необходимо реализовать определенные методы, чтобы клиентское приложение могло вызывать эти службы с помощью определенных методов.

Почему gRPC лучше, чем REST?

Сериализация данных

Передача данных в GRPC осуществляется в двоичном формате по сравнению с REST в текстовом формате. GRPC использует буфер протокола для сериализации данных, это может помочь уменьшить размер данных и ускорить их по сравнению с REST, который использует простой текст, который может быть огромным.

Использовать HTTP / 2 по сравнению с HTTP / 1

Хотя REST может поддерживать HTTP / 2, нам нужно включить его для сравнения с GRPC, который может поддерживать только HTTP / 2. Как вы все знаете, производительность HTTP / 2 намного выше, чем у HTTP / 1, поскольку он может отправлять несколько запросов данных параллельно через одно TCP-соединение.

Протобуф

У службы Платеж есть два метода: CreateToken и DeleteToken. Каждый из этих методов предоставляет типы запросов и ответов.

Сервер

Сервер принимает запрос от клиента и отвечает соответствующим образом. Он реализовал определение платежного сервиса и запускает сервер на локальном хосте с номером порта 50051.

Клиент

Клиент отправляет запрос и получает ответ. Он объясняет, как он общается с сервером. Сначала он установил соединение с сервером, набрав номер localhost с портом 50051. После установления соединения он начинает вызывать метод RPC, такой как CreateToken и DeleteToken.

Вывод

Реализовать Protobuf на JavaScript не представляет особой сложности. Доказано, что gRPC быстрее, чем REST из-за всех преимуществ, предлагаемых gRPC, таких как сериализация данных и HTTP / 2.

В заключение скажу, что это повысит производительность gRPC по сравнению с REST.

использованная литература

Https://grpc.io/docs/languages/node/basics/

Https://www.yonego.com/nl/why-milliseconds-matter/#gref