Spring.Net

grpc

2018-07-26  本文已影响820人  ff933ee189cb

1.gprc基于http2.0

2.0与1.1的区别

多路复用 (Multiplexing)

在 HTTP/1.1 协议中 「浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制。超过限制数目的请求会被阻塞」。

HTTP/2 的多路复用(Multiplexing) 则允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。 

因此 HTTP/2 可以很容易的去实现多流并行而不用依赖建立多个 TCP 连接,HTTP/2 把 HTTP 协议通信的基本单位缩小为一个一个的帧,这些帧对应着逻辑流中的消息。并行地在同一个 TCP 连接上双向交换消息。

2. gRPC通信方式

1、 Simple RPC 

简单rpc 

这就是一般的rpc调用,一个请求对象对应一个返回对象 

proto语法:

rpcsimpleHello(Person)returns(Result){}

2、 Server-side streaming RPC 

服务端流式rpc 

一个请求对象,服务端可以传回多个结果对象 

proto语法

rpcserverStreamHello(Person)returns(streamResult){}

3、 Client-side streaming RPC 

客户端流式rpc 

客户端传入多个请求对象,服务端返回一个响应结果 

proto语法

rpcclientStreamHello(streamPerson)returns(Result){}

4、 Bidirectional streaming RPC 

双向流式rpc 

结合客户端流式rpc和服务端流式rpc,可以传入多个对象,返回多个响应对象 

proto语法

rpcbiStreamHello(streamPerson)returns(streamResult){}

上一篇下一篇

猜你喜欢

热点阅读