概述
由于学习Netty过程中需要结合protobuf,”不得已“拓展学习一下。
protobuf是什么
protobuf是google protocol buffers的简称,是google早年推出的一个RPC框架。简单的来讲,protobuf可以看作一种协议,他可以更好的、体积更小的对数据进行“编码”和“解码”,实质上就是序列化和反序列化的过程。与之后google推出的gRPC以及Facebook开源的Thrift属于同一种领域的技术。ProtoBuf 是一种数据表达方式,根据 G 家自己的描述,应该叫做数据交换格式,注意这里使用的是 交换 字眼,也就是说着重于在数据的传输上。
RPC库的使用原理
提到RPC,不得不提到在一种技术——RMI(remote method invocation),顾名思义远程方法调用,支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用,说人话就是支持不同机器上无感知的远程调用。JAVA RMI支持不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过是允许被远程调用的对象要通过一些标志加以标识。使用起来就是A机器上程序调用了一个方法x(),实际上x()方法是B机器程序中的一个方法,但是A机