Hello World

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文件

  1. 将proto中定义的结构体转换为Java中的对象
  2. 生成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.操作截图

posted @ 2024-06-25 10:06  小小忧愁米粒大  阅读(76)  评论(0编辑  收藏  举报
瞅啥瞅,好好看书