java调用grpc
1.创建proto文件
// 使用该proto文件可以定义交互的服务接口,基于该文件编译成的源文件可以分别复制到 client端和server端,便于两者使用
syntax = "proto3"; // 定义语法类型,通常proto3好于proto2,proto2好于proto1,如果不指定,默认使用proto2,必须位于第一行
package hello; // 定义作用域
option java_multiple_files = false; // 表示下面的message不需要编译成多个java文件
option java_outer_classname = "HelloMessage"; // 表示下面的message编译成的java类文件的名字
option java_package = "grpc"; //指定该proto文件编译成的java源文件的包名
service Hello { // 定义服务
rpc sayHello(HelloRequest) returns(HelloResponse) {}
}
message HelloRequest { // 定义请求的消息体
string name = 1;
}
message HelloResponse { // 定义回复的消息体
string message = 1;
}
2. 根据proto生成2个java文件
- 将proto中定义的结构体转换为Java中的对象
- 生成java版本的grpc文件
1. protobuf插件
https://github.com/protocolbuffers/protobuf/releases
安装protoc.exe后添加路径的环境变量Path中,方便全局使用,执行如下命令
protoc.exe --java_out=./ --proto_path=./ hello.proto
执行完在java_package定义目录下生成文件名为java_outer_classname定义的Java代码文件
2. protoc-gen-grpc-java插件
https://repo.maven.apache.org/maven2/io/grpc/protoc-gen-grpc-java/
下载到protoc的bin目录下,前面已经添加了Path,直接就能全局使用
protoc.exe --plugin=protoc-gen-grpc-java.exe --grpc-java_out ./ --proto_path=./ hello.proto
执行完在java_package定义目录下生成文件名为ServiceGrpc.java文件(这里的Service是Heelo,也就是HelloGrpc.java)
3.操作截图
如果文章对您有所帮助,可以点一下推荐