RUST编程

011 Rust 网络编程,gRPC 介绍

2020-05-10  本文已影响0人  令狐壹冲

介绍

gRPC是由google开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。
通过gRPC,客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,能够让用户更容易地创建分布式应用和服务。gRPC基本原理为:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC 服务来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。

protocol buffers

gRPC默认使用protocol buffers,它是Google开源的一套成熟的结构数据序列化机制。

服务定义

示例

示例来自官方文档:

service HelloService {
  rpc SayHello (HelloRequest) returns (HelloResponse);
}

message HelloRequest {
  required string greeting = 1;
}

message HelloResponse {
  required string reply = 1;
}

在上述例子中,定义一个服务,指定其可以被远程调用的方法及其参数和返回类型。在定义的消息类型中,定义了字段,后面的数字表示字段对应的唯一的数字标识,这些标识用来在消息的二进制格式中识别的字段,并且一旦消息投入使用,这些标识就不应该再被修改。

定义方法

gRPC允许定义四类服务方法:

rpc SayHello(HelloRequest) returns (HelloResponse){
}
rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse){
}
rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse) {
}
rpc BidiHello(stream HelloRequest) returns (stream HelloResponse){
}
上一篇下一篇

猜你喜欢

热点阅读