grpc官网
Guides 官网

Guides

grpc是一个适合多环境的开源高性能rpc框架。grpc可以使用protobuf作为idl(接口解释语言)。
使用grpc你可以调用不同机器的服务端方法,使能够简单的创建分布式服务。grpc是基于(based around)服务端的idea,尤其是可以远程调用的那些有参数、返回值的方法。具体服务器端而言,服务端实现一个接口后启动一个grpc服务对客户端请求进行处理;客户端而言,有一个跟服务端一样的方法可以调用执行。

Working with Protocol Buffers

grpc默认(By default)使用的protobuf,一个谷歌成熟的开源数据序列化、结构化机制。
下面是一些简单的介绍(intro)。

  • 1.新建一个proto文件(xx.proto)定义所需的结构体(structure)
    message Person {
    string name = 1;
    int32 id = 2;
    bool has_ponycopter = 3;
    }
  • 2.使用protobuf的编译器对文件进行编译,跟之前是一样的 -- java-protobuf 介绍与使用示例
    protoc --java_out=src/main/java xxx.proto

  • 3.跟thrift一样,grpc支持service -- service相当于java中的函数,有返回值参数。
    
    // The greeter service definition.
    service Greeter {
    // Sends a greeting
    rpc SayHello (HelloRequest) returns (HelloReply) {}
    }

// The request message containing the user's name.
message HelloRequest {
string name = 1;
}

// The response message containing the greetings
message HelloReply {
string message = 1;
}


- 4. gRPC plugins
不仅可以生成grpc客户端、服务端代码,还可以(as well as) 适用于一大堆常见协议的代码 -- 用到再学

### Protocol buffer versions
grpc推荐使用proto3

## gRPC Concepts(概念)