一 grpc的为什么比http快?
1- 用Proto Buffer 作为序列化工具
2- 采用http2协议,头部压缩,多路复用
3- 基于netty的IO框架
二 grpc的demo
A lib工程
作用:
1- 编译protocol buffer定义的接口语言文件(***.proto)
2- 提供grpc的JAVA语言jar包
附录:
a: os-maven-plugin插件: 编当前操作系统和体系结构自动生成器
b: protobuf-maven-plugin插件: 编译***.proto文件需要(它会自动下载编译需要的所有组件),以及设置存放路径
c: idea插件 Protobuf Support 支持***.proto文件的高亮显示
所需jar包
io.grpc
grpc-netty
${grpc.version}
io.grpc
grpc-protobuf
${grpc.version}
io.grpc
grpc-stub
${grpc.version}
io.netty
netty-common
${netty.common}
***.proto需要包含核心要素:
1- 服务方法以及grpc的调用类型
2- 入参类型的定义
3- 返回值类型的定义
B 服务端
1- 引入lib工程的jar包
2- 定义服务方法的业务逻辑
3- 启动服务(指定端口)
C 客户端
1- 引入lib工程的jar包
2- 通过服务端的开放端口创建连接开启channal通道