本文介绍在Java中使用gRPC的过程。一般来说,主要包含以下的三个步骤
1)在.proto文件中定义提供的服务
2)使用protocol buffer编译器编译文件
3)使用gRPC API来创建服务端和客户端,并进行调用。
下载和安装需要的软件
protoc --java_out=./ *.proto
2)protoc-gen-grpc-java
用于生成RPC通信代码
http://jcenter.bintray.com/io/grpc/protoc-gen-grpc-java/
使用示例【使用Protobuf-Plugin机制】:
protoc --plugin=protoc-gen-grpc-java=protoc-gen-grpc-java-1.19.0-windows-x86_64.exe --grpc-java_out=./ *.proto
使用Maven构建gRPC
1)修改pmo.xml
UTF-8
3.7.0
1.19.0
io.grpc
grpc-netty-shaded
${grpc.version}
io.grpc
grpc-protobuf
${grpc.version}
io.grpc
grpc-stub
${grpc.version}
com.google.protobuf
protobuf-java
${protobuf.version}
com.google.protobuf
protobuf-java-util
${protobuf.version}
kr.motd.maven
os-maven-plugin
1.6.1
org.xolstice.maven.plugins
protobuf-maven-plugin
0.6.1
false
com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}
grpc-java
io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
compile
compile-custom
默认情况下,该插件会查找 src/main/proto路径下的proto文件。该在路径下的任何子文件夹都会作为proto文件中使用的包路径。
2)在src/main/proto下创建proto文件(HarLog.proto)
syntax = "proto3";
option java_multiple_files = true;
option java_package = "com.ultrapower.ioss.proto";
option java_outer_classname = "HarLogProto";
package com.ultrapower.grpc.har;
message HarLogResovleRequest{
string url = 1 ;
string file_name = 2;
string file_dir = 3;
string context = 4;
}
message HarLogResovleResponse{
int32 code = 1 ;
}
service HarLogService{
rpc ResovleHarLog(HarLogResovleRequest) returns (HarLogResovleResponse);
rpc BatchResovleH