文章目录
Java实现grpc
1、实践
(1) IDEA安装插件
Protobuf Support
(2) 新建.proto文件
我这里命名为test.proto。
指定生成代码的包路径、接口服务等。
定义了一个UserService服务,包含一个方法getUser()。以及请求类UserRequest、响应类UserReply。
syntax = "proto3";
option java_multiple_files = true;
option java_package = "io.grpc.examples";
option java_outer_classname = "UserProto";
option objc_class_prefix = "HLW";
package test;
// The user service definition.
service User {
// getUser method
rpc getUser (UserRequest) returns (UserReply) {
}
}
// The request message containing the user's name.
message UserRequest {
string name = 1;
}
// The response message containing the user
message UserReply {
string message = 1;
}
(3) pom引入依赖
包括grpc、protobuf和protobuf插件。
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<protobuf.version>3.6.1</protobuf.version>
<grpc.version>1.19.0</grpc.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>${protobuf.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifact