点击上方GRPC专栏看完整系列
文章目录
- Abstract
- 前置依赖
- 本文
- 初始状态
- 编写protobuffer文件
- 生成代码
- 下一步
Abstract
网上有很多GRPC的例子,但是却没有能够写给普通Java开发人员手把手入门少走弯路的教程。
本教程保证按照步骤一步步来你就可以完成GRPC从0到1的构建。
源码地址:grpc-helloworld-for-java
前置依赖
装有maven和JDK。并且保证javac命令可用。
本文
本文是系列的第2篇,将编写protobuffer文件并生成代码。 代码在分支:step2-protobuffer。
初始状态
git clone https://github.com/gaoxingliang/grpc-helloworld-for-java.git
git checkout step1-import-mvn
编写protobuffer文件
在示例中我们会编写3个proto文件,分别模拟有2个模块,user,foods和一个common模块。
目录如下:
vo.proto内容:
syntax = "proto3";
option java_package = "com.example.grpc.common.vo";
message Empty{
}
food.proto:
syntax = "proto3";
option java_package = "com.example.grpc.food";
import "common/vo/vo.proto";
service Food {
rpc list(Empty) returns (FoodResponse);
}
message FoodResponse{
repeated string foods = 1;
int32 responseCode = 2;
}
user.proto:
syntax = "proto3";
option java_package = "com.example.grpc.user";
import "common/vo/vo.proto";
service User{
rpc login(LoginRequest) returns (APIResponse);
rpc logout(Empty) returns (APIResponse);
}
message LoginRequest{
string username = 1 ;
string password = 2 ;
}
message APIResponse{
string responsemessage = 1;
int32 responseCode = 2;
}
可以看到User这个服务中提供了2个RPC login 和logout。 以及对应的请求和响应。
生成代码
cd grpcExample
mvn
执行完后,可以看到生成了很多代码:
下一步
下一步我们会编写自己的服务端和客户端实现来测试RPC功能。