gRPC配置及使用

新建maven项目 learning-grpc 并建立几个模块

Maven工程结构

一共四个模块

grpc-interface

用来存放生成的代码

grpc-service

用来实现接口

grpc-server

简单的服务器

grpc-client

简单的客户端

编写protobuf文件

proto文件放到grpc-interface项目的resources/protobuf/目录下并运行插件生成bean和服务接口的代码

syntax = "proto3"; // 协议版本

// 选项配置
option java_package = "top.lilixin.grpc.api";
option java_outer_classname = "RPCDateServiceApi";
option java_multiple_files = true;

// 定义包名
package top.lilixin.grpc.api;

// 服务接口.定义请求参数和相应结果	
service RPCDateService {
    rpc getDate (RPCDateRequest) returns (RPCDateResponse) {
    }
}

// 定义请求体
message RPCDateRequest {
    string userName = 1;
}

// 定义相应内容
message RPCDateResponse {
    string serverDate = 1;
}

protobuf-maven 插件

配置

在pom.xml中增加

使用

生成的代码在直接在proto文件中定义的包路下面

grpc-interface项目需要引入grpc的包 否则会报错

实现服务接口

在grpc-service中实现接口 需要引入 grpc-interface依赖

实现服务端

在grpc-server中 需要引入 grpc-service依赖

实现客户端

在grpc-client中 需要引入 grpc-interface依赖

完整项目代码

https://github.com/lilixin/learning-grpc/tree/masterarrow-up-right

Last updated