一、概览
- gRPC一开始由 google 开发,是一款语言中立、高性能、平台中立、开源的远程过程调用系统.
- 通过IDL文件来定义一个服务,包含:方法、参数和返回类型。
- gRPC 基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩。
- protobuf使用基础
![909eb4ced977d6b44b3280b535ba205f.png](https://img-blog.csdnimg.cn/img_convert/909eb4ced977d6b44b3280b535ba205f.png)
二、同步和异步回调,流式编程
- gRPC编程接口同时支持同步和异步的特点
- 流式编程
三、插件protoc-gen-grpc-java编译安装
插件用于生成gRPC服务端与客户端类。
- 下载代码:https://github.com/grpc/grpc-java
- cd grpc-java/compile
- ../gradlew build
过程中gradle下载比较慢,可自己手动下载,自己google,aliyun的mavne源还会有proto-xx的jar包下载失败,我自己下载下载,mvn install --xxx 安装到本地,应该还可以到中央仓库,可以自动下载就是有点慢跑,../gradlew build 每次手动安装jar包每build第一次都会失败,第二次运行才成功
- 安装成功在dist目录下载 grpc-java/compiler/build/exe/java_plugin/ protoc-gen-grpc-java命令 grpc生成Server时用的
- 在命令中使用:protoc --plugin=protoc-gen-grpc-java=/Users/ttylang/gitee/grpc-java/compiler/build/exe/java_plugin/protoc-gen-grpc-java --grpc-java_out=./java --java_out=./java ./hello.proto
四、编写proto文件
syntax = "proto3";option java_multiple_files = true;option java_generic_service