Почему gRPC использует сообщения с префиксом длины? - PullRequest
1 голос
/ 22 июня 2019

Я пытаюсь понять, как gRPC отправляет потоковые сообщения, используя HTTP2?Ссылка https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md говорит,

«Повторяющаяся последовательность элементов сообщения с префиксом длины доставляется в кадрах данных»

Насколько я понимаю из прочтения этого утверждения, каждое (protobuf) сообщение инкапсулируется gRPC в фрейм данных HTTP2 и пересылается.Если это так, то почему gRPC нужно добавить префикс длины к сообщению, не может ли он просто прочитать полное тело фрейма данных и предположить, что это одно полное сообщение?

Чего мне здесь не хватает?

1 Ответ

0 голосов
/ 26 июня 2019

Недостающая часть заключается в том, что нет гарантии, что один кадр DATA содержит только одно сообщение gRPC. Сообщения gRPC - это поток более высокого уровня, который работает как полезная нагрузка для HTTP / 2. Он может быть реализован так, как вы описали в официальных библиотеках gRPC, но с точки зрения протокола вполне допустимо получить некоторый кадр DATA с более чем одним PDU gRPC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...