- RPC(Remote Procedure Call)即远程过程调用,通过名字我们就能看出 RPC 关注的是远程调用而非本地调用。RPC 的主要目的就是让远程调用和本地调用一样方便,项目也是从最简单的 RPC 开始优化,一步一步完成一个相对全面的 RPC 小项目。
- 客户端:调用远程方法的一端。
- 客户端 Stub: 可以理解为代理类。主要做任务就是把调用的方法、方法参数等信息传递到服务端。
- 网络传输: 包括把客户端 Stub 生成的信息传输到服务端,然后服务端执行完把结果通过网络传回客户端。可以使用 Socket/Netty 进行网络传输。
- 服务端 Stub:接收到客户端执行方法的请求后,去指定对应的方法然后将结果返回给客户端 Stub。
- 服务端:提供远程方法的一端。
执行过程:
- 客户端发起远程调用
- 客户端 Stub 将方法、参数等处理后通过网络传输发送给服务端 Stub
- 服务端 Stub 收到远程调用请求后调用信息还原后调用本地方法
- 服务端 Stub 将返回值发送给客户端 Stub
- 客户端 Stub 处理后返回给远程调用发起者
项目目录: