RPC(远程过程调用)是一种调用远程程序的协议,可以实现RPC的方案很多,比如RMI、Hessian,还有公司自己开发的dbo和TB-Remoting(实际上是基于Hessian和mina实现的),各种RPC的API差异很大,很多系统之间的远程接口调用总会就RPC的调用细节花费很多时间,因此设计一个实现细节对调用者透明的RPC统一框架是非常必要的。最近在学习公司平台产品dubbo时,就发现提供了一套封装多种实现的RPC设计,框架的大体类图如下所示:
服务的发布者和调用者都基于以上接口来完成RPC发布和调用,dubbo默认提供三种RPC具体实现方案,分别是RMI、Hessian和dbo,三种方案分别实现RpcSupport、RpcInoker和RpcExporter,用户具体基于那种实现,只用在配置文件中指明即可,这样用户再也不用为较为复杂的RPC细节而伤脑筋了