栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

grpc四种通信模式及其应用场景选型

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

grpc四种通信模式及其应用场景选型

文章目录
  • grpc四种通信模式及其应用场景选型
    • 1、Simple RPC
    • 2、 Server-side streaming RPC
    • 3、Client-side streaming RPC
    • 4、 Bidirectional streaming RPC
    • 总结
  • grpc应用场景

grpc四种通信模式及其应用场景选型

gRPC有四种通信方式,分别是:简单 RPC(Unary RPC)、服务端流式 RPC (Server streaming RPC)、客户端流式 RPC (Client streaming RPC)、双向流式 RPC(Bi-directional streaming RPC)。它们主要有以下特点:

服务类型特点
简单 RPC一般的rpc调用,传入一个请求对象,返回一个返回对象
服务端流式 RPC传入一个请求对象,服务端可以返回多个结果对象
客户端流式 RPC客户端传入多个请求对象,服务端返回一个结果对象
双向流式 RPC结合客户端流式RPC和服务端流式RPC,可以传入多个请求对象,返回多个结果对象
1、Simple RPC

proto语法 :
简单rpc 这就是一般的rpc调用,一个请求对象对应一个返回对象
proto语法:

rpc simpleHello(Person) returns (Result) {}

客户端发起一次请求,服务端响应一个数据,即标准RPC通信。
这种模式,一个每一次都是发起一个独立的tcp连接,走一次三次握手和四次挥手!

2、 Server-side streaming RPC

服务端流式rpc 一个请求对象,服务端可以传回多个结果对象
proto语法 :

rpc serverStreamHello(Person) returns (stream Result) {}

服务端流 RPC 下,客户端发出一个请求,但不会立即得到一个响应,而是在服务端与客户端之间建立一个单向的流,服务端可以随时向流中写入多个响应消息,最后主动关闭流,而客户端需要监听这个流,不断获取响应直到流关闭

应用场景举例:
典型的例子是客户端向服务端发送一个股票代码,服务端就把该股票的实时数据源源不断的返回给客户端。

3、Client-side streaming RPC

客户端流式rpc 客户端传入多个请求对象,服务端返回一个响应结果
proto语法 :

rpc clientStreamHello(stream Person) returns (Result) {}

应用场景:
物联网终端向服务器报送数据。

4、 Bidirectional streaming RPC

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

rpc biStreamHello(stream Person) returns (stream Result) {}

应用场景:聊天应用。

总结

流式 RPC 定义与 简单 RPC 的区别只是在请求或返回参数前增加了 stream 关键词,如下:

service HelloService {
  // 客户端流式 RPC
  rpc SayHello1 (stream  HelloRequest) returns (HelloResponse);
  // 服务端流式 RPC
  rpc SayHello2 (HelloRequest) returns (stream HelloResponse);
  // 双向流式 RPC
  rpc SayHello3 (stream  HelloRequest) returns (stream HelloResponse);}
grpc应用场景
  • gRPC设计为低延迟和高吞吐量通信。gRPC非常适用于效率至关重要的轻型微服务。点对点实时通信 - gRPC对双向流媒体提供出色的支持。gRPC服务可以实时推送消息而无需轮询。多语言混合开发环境 - gRPC工具支持所有流行的开发语言,使gRPC成为多语言开发环境的理想选择。

  • 网络受限环境 - 使用Protobuf(一种轻量级消息格式)序列化gRPC消息。gRPC消息始终小于等效的JSON消息。

至于选择那种模式,完全看业务情况吧!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/908547.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号