Google 新实现的Protobuf RPC: grpc

转自:java

http://www.dongliu.net/post/622450c++

 

Google 刚刚开源了grpc,  一个基于HTTP2 和 Protobuf 的RPC 实现。git

Protobuf 自己虽然提供了RPC  的定义语法,可是一直以来,Google 只开源了Protobuf 序列化反序列化的代码,而没有开源RPC 的实现,因而存在着众多参差不齐的第三方RPC 实现。github

从实现和特性看来,grpc 更多的是考虑移动场景状况下客户端和服务端的通讯,正如其自称的「general RPC framework that puts mobile and HTTP/2 first」。HTTP2 自己提供了链接多路复用、Body 和 Header 压缩等机制,grpc 基于此能够提供比较高效的实现。golang

grpc 所使用的依赖都比较新,如protbuf 须要3.0 版本, c++ 使用了c++11, Java 实现中的netty 须要5.0  版本, HTTP2 也是刚刚定稿。这些依赖中不少都仍是没有正式release ,因此目前来看grpc 还不是一个可稳定使用的状态。post

grpc 提供了c 、Javagolang 的原生实现,并以c 共享库的方式来支持Node.js, Python, Ruby, Objective-C, PHP 和 C# 语言 (由此看来,c++, Java 和golang 在Google 有着一等公民的地位)。其中Java 语言的实现亦能够用于Android 客户端,Objective-C 的实现主要针对IOS 客户端。.net

相关文章
相关标签/搜索