因为本人测试都是Java,这里只作java 介绍,其余语言相似!html
关于gRPC 多余的客套话,就不在这里说了,具体能够自行去官方网站查阅资料和介绍;java
1.下载 protocol buffer 2/3 maven
文档介绍:https://developers.google.com/protocol-buffers/docs/proto3ide
下载地址:https://repo1.maven.org/maven2/com/google/protobuf/protoc/3.0.2/测试
下载完成后,添加 window 环境变量(因为我本地有两个版本,故我命名为protoc2/protoc3)添加完成后,进行验证。以下图:网站
若是出现于做者一样的图,说明安装成功!ui
2.在编译的 gRPC 的时候 ,protocol buffer 须要将 protoc-gen-grpc-java 做为插件来生成代码,google
文档介绍:http://www.grpc.io/docs/quickstart/java.htmlspa
下载地址:https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/1.0.1/插件
下载完成后,一样的添加到 winddos环境变量中。
3.编写 .proto 文件 。命名为 : grpc-helloworld.proto .文件内容以下:
syntax = "proto3"; option java_generic_services = true; option java_multiple_files = true; option java_package = "com.hservice.grpc.schema"; option java_outer_classname = "HelloWorldProto"; // The greeting 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; }
首先生成Proto 文件
再执行生成命令:( >>> protoc3 --plugin=protoc-gen-grpc-java=D:/sysEnv/protoc-gen-grpc-java.exe --grpc-java_out=java --proto_path=proto proto/g
rpc-helloworld.proto) 生成gRPC文件
若是在这一步的时候,执行失败,请注意路径参数的配置。
4.生成后,会在com.hservice.grpc.schema 包下生存 GreeterGrpc.java 文件。个人生成后java 代码以下:
5. 继承并覆盖 gRPC 中的 rpc 方法
/** * @author Rayn on 2016/9/25. * @email liuwei412552703@163.com. */ public class GrpcGreeterImpl extends GreeterGrpc.GreeterImplBase { /** * <pre> * Sends a greeting * </pre> * * @param request * @param responseObserver */ @Override public void sayHello(HelloRequest request, StreamObserver<HelloReply> responseObserver) { HelloReply reply = HelloReply.newBuilder().setMessage("Hello " + request.getName()).build(); responseObserver.onNext(reply); responseObserver.onCompleted(); } }
至此,已经完成相应的工做。
注:本人环境为 win7 64 位, protobuf 3, grpc 插件为1.0.1, 若是有什么问题,能够交流!