What's gRPC?

gRPC是由 google开发的一个高性能、通用的开源RPC框架,主要面向移动应用开发且基于HTTP/2协议标准而设计,同时支持大多数流行的编程语言。

gRPC基于 HTTP/2协议传输。而HTTP/2相比HTTP1.x,有以下一些优势:

用于数据传输的二进制分帧
HTTP/2采用二进制格式传输协议,而非HTTP/1.x的文本格式。

image

HTTP/2支持通过同一个连接发送多个并发的请求。

而HTTP/1.x虽然通过pipeline也能并发请求,但多个请求之间的响应依然会被阻塞。

image

服务端推送
服务端推送是一种在客户端请求之前发送数据的机制。在HTTP/2中,服务器可以对客户端的一个请求发送多个响应。而不像HTTP/1.X一样,只能通过客户端发起request,服务端才产生对应的response。

减少网络流量的头部压缩
HTTP/2对消息头进行了压缩传输,能够节省消息头占用的网络流量。

同时gRPC使用Protocol Buffers作为序列化协议。关于Protocol Buffers。官网有一句介绍:

Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler.

它是一种与语言、平台无关 、可扩展的序列化结构数据。它的定位类似于JSON、XML,但是比他们更小、更快、更简单。更多关于Protocol Buffers介绍,我下一篇再写。

gRPC 是如何进行远程调用的?

image

wbst:
https://github.com/grpc/grpc.io/blob/main/content/en/docs/what-is-grpc/introduction.md

http2 (特点多路复用 服务端stream反推)
https://www.zhihu.com/question/34074946

demo code:
https://blog.csdn.net/BUG_zhentan/article/details/125523357?spm=1001.2014.3001.5502

posted @ 2022-09-06 23:32  ukyo--夜王  阅读(30)  评论(1编辑  收藏  举报