为了深入的了解RPC的内部原理,这里我造了一个简单的RPC轮子。

RPC:远程过程调用。广义上讲,不在同一个进程中的服务,就是远程。过程,就是一段可执行的代码。调用,调的就是进程的方法。在大数据中应用非常广泛。
跨进程-->跨物理机
跨进程交互的方式: WebService, HTTP,基于DB做数据交换,基于MQ做数据交换,RPC





直接交互的方式的是同步执行的。服务端的响应时间会影响客户端。
server: Provider 服务提供者
client: consumer 服务消费者
stub: 存根、服务描述

在RPC中,可以像调用本地方法一样调用远程方法


client调存根里面的方法,方法的实现在远程,通过网络传输实现调用
步骤2 把传输的对象序列化, 步骤4把二进制数据反序列化成对象。
网络模块+序列化模块

技术栈:  JavaCore,maven(多模块管理),反射;动态代理;序列化(fastjson);网络通信(jetty,URLConnection)