可以用grpc的双向流模式当普通的socket用吗?
因为需要双向通讯,用grpc的双向流比普通socket性能差多少啊
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
因为需要双向通讯,用grpc的双向流比普通socket性能差多少啊
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
gRPC 是基于 HTTP/2 的,HTTP/2 又是基于 TCP 的。而 socket 直接就是 TCP。
理论性能上肯定是直接用 socket 更快啊,少两层封装呢。
但 gRPC 还提供了完整的序列化/反序列方案(ProtoBuf)啊,还自带压缩传输,还是强类型。
你徒手写的 socket 还未必有人家性能高。
gRPC 双向流的优势在于,基于 HTTP2 的单条连接请求复用的协议实现,对于大型数据的传输,客户端可以多次发送请求,服务端可以做到边接收边处理边响应,避免等待所有数据接受完毕再处理从而增加耗时。并且 gRPC 双向流的传输对象是 protobuf 消息体,序列化和反序列化工作都已由内部实现。当然,这些均可以自己通过 socket 来实现,不过可能会增加不少额外的工作。
理论上讲,如果 gRPC 双向流非常切合业务需求,是可以用作双向通信的,但是要看题主对侧重点的把量,性能还是易实现性,并且现成的 socket 方案也不少,不要为了用 gRPC 而用 gRPC。