27加餐篇:gRPC框架的优势与不足之处
gRPC作为一个现代的、开源的远程过程调用(RPC)框架,在多个方面都展现了其优雅之处,同时也存在一些不足之处。这篇文章我们就相对全面的分析一下gRPC框架那些优雅的地方和不足的地方。
优雅的地方
gRPC作为一个RPC框架,在编码、传输协议已经支持多语言方面都比较高效,下面我们就逐个分析下这些优雅的地方。
Protobuf编码性能
gRPC使用Protobuf作为传输编码,Protobuf在性能方面与JSON及XML相比,具有显著的优势。
1)体积大小:Protobuf使用二进制格式进行数据序列化,体积通常比JSON和XML更小。比如Protobuf字段名称不包含在消息中,而是使用数字来区分字段。在大多数情况下,它的字段编号在网络上占用一个或两个字节,而JSON字段名称可能远远超过大于这些字节数。其次得益于其高效的编码方式和可变长度编码技术,使得在传输大量数据时,Protobuf能够在支持压缩的情况下显著节省带宽和存储空间。
2)编解码速度:Protobuf编解码速度通常