因为需要双向通讯,用grpc的双向流比普通socket性能差多少啊
gRPC 双向流的优势在于,基于 HTTP2 的单条连接请求复用的协议实现,对于大型数据的传输,客户端可以多次发送请求,服务端可以做到边接收边处理边响应,避免等待所有数据接受完毕再处理从而增加耗时。并且 gRPC 双向流的传输对象是 protobuf 消息体,序列化和反序列化工作都已由内部实现。当然,这些均可以自己通过 socket 来实现,不过可能会增加不少额外的工作。
理论上讲,如果 gRPC 双向流非常切合业务需求,是可以用作双向通信的,但是要看题主对侧重点的把量,性能还是易实现性,并且现成的 socket 方案也不少,不要为了用 gRPC 而用 gRPC。
2 回答2.4k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
4 回答1.4k 阅读
2 回答1.2k 阅读
gRPC 是基于 HTTP/2 的,HTTP/2 又是基于 TCP 的。而 socket 直接就是 TCP。
理论性能上肯定是直接用 socket 更快啊,少两层封装呢。
但 gRPC 还提供了完整的序列化/反序列方案(ProtoBuf)啊,还自带压缩传输,还是强类型。
你徒手写的 socket 还未必有人家性能高。