Смысл и сценарий потоковой передачи RPC? - PullRequest
0 голосов
/ 28 мая 2019

Я вижу следующие 4 типа RPC в grpc документе:

 - rpc SayHello(HelloRequest) returns (HelloResponse) {...}
 - rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse) {...}
 - rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse) {...}
 - rpc BidiHello(stream HelloRequest) returns (stream HelloResponse) {...}

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

И я очень озадачен сценарием, когда нужен поток ответа. Какой сценарий потокового ответа?

1 Ответ

1 голос
/ 31 мая 2019

Существует 4 типа RPC:

  • Unary : клиент отправляет один запрос на сервер, а сервер отправляет один ответ

  • Потоковая передача сервера : Клиент отправляет на сервер одно сообщение. Сервер отвечает упорядоченной последовательностью сообщений. Клиент читает из потока, пока больше нет сообщений.

  • Потоковая передача клиента : Клиент отправляет упорядоченную последовательность сообщений на сервер. Сервер читает сообщения от клиента и отправляет ответ.

  • Двунаправленная потоковая передача : и клиент, и сервер отправляют упорядоченные последовательности сообщений друг другу. Потоки клиента и сервера независимы друг от друга.

Для получения дополнительной информации посмотрите https://grpc.io/docs/guides/concepts/.

...