背景
gRPC是google开源的高性能跨语言的RPC方案。gRPC的设计目标是在任何环境下运行,支持可插拔的负载均衡,跟踪,运行状况检查和身份验证。它不仅支持数据中心内部和跨数据中心的服务调用,它也适用于分布式计算的最后一公里,将设备,移动应用程序和浏览器连接到后端服务。
GRPC设计的动机和原则
个人觉得官方的文章令人印象深刻的点:
- 内部有Stubby的框架,但是它不是基于任何一个标准的
- gRPC支持任意环境使用,支持物联网、手机、浏览器
- gRPC支持stream和流控
HTTP/2是什么
在正式讨论gRPC为什么选择HTTP/2之前,我们先来简单了解下HTTP/2。
HTTP/2可以简单用一个图片来介绍:
可以看到:
- HTTP/1里的header对应HTTP/2里的 HEADERS frame
- HTTP/1里的payload对应HTTP/2里的 DATA frame