一.简介
1.rmi:remote method invocation,只针对java
client:stub
server:skeleton
序列化与反序列化,也叫做:编码与解码,可以将文件压缩从而提升传输速率
2.rpc:remote procedure call,远程过程调用,原理类似rmi,优势在于很多rpc框架是跨语言的
1.定义一个接口说明文件:描述了对象(结构体)、对象成员、接口方法等一系列信息
2.通过rpc框架所提供的编译器,将接口说明文件编译成具体语言文件
3.在客户端与服务器端分别引入rpc编译器所生成的文件,即可像调用本地方法一样调用远程方法
3.google protobuf就是一个优秀的RPC框架/库,与xml相比,它的效率更高
二、安装
编译器版本:protoc-3.3.0-osx-x86_64.zip,解压cd bin后加入到系统路径
pom依赖:
三、Demo
注:oneof-->同一时间只有一个对象
编译:protoc --java_out=src/main/java src/protobuf/Student.proto