protocol-buffers - 为什么 gRPC 使用长度前缀消息?
问题描述
我想了解 gRPC 如何使用 HTTP2 发送流消息?链接https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md说,
“长度前缀消息项的重复序列在数据帧中传递”
阅读此声明我的理解是,每个(protobuf)消息都由 gRPC 封装在 HTTP2 数据帧中并发送过来。如果是这样,那么为什么 gRPC 需要将 Length Prefix 附加到消息中,它不能简单地读取完整的 Data Frame Body 并假设它是一个完整的消息吗?
我在这里想念什么?
解决方案
缺少的部分是不能保证一个 DATA 帧只包含一个 gRPC 消息。gRPC 消息是一个更高层的流,用作 HTTP/2 的有效负载。它可能以您在官方 gRPC 库中描述的方式实现,但就协议而言,接收具有多个 gRPC PDU 的某些 DATA 帧是完全有效的。
推荐阅读
- reactjs - 如何使用reactjs从数组对象进行分页
- image - 如何在 xamarin IOS 中使用 GMImagePicker 从图库中选择多张图片?
- java - 如何使用java将复杂的动态嵌套json插入bigquery
- javascript - 返回包含对象信息的对象数组,从 Arrays 中选择
- python - 如何表示多层次组合?
- mysql - 查询生成器为 AdonisJS 中的连接结果和原始查询返回 null
- django - 是否可以从数据库而不是模型进行迁移?
- java - Mysql AbandonedConnectionCleanupThread Error
- scala - 自动生成案例类的 Kafka 消费者和生产者
- jestjs - TypeError: (_jestResolve || _load_jestResolve(...)).default.findNodeModule 不是函数