1.RPC原理
原理的话,网上一搜一大堆,下面这一段我也是从网上搜的,哈哈。
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP/IP或UDP,为通信程序之间携带信息数据。RPC将原来的本地调用转变为调用远端的服务器上的方法,给系统的处理能力和吞吐量带来了近似于无限制提升的可能。在OSI网络通信模型中,RPC跨域了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
2.RPC架构
一个完整的RPC架构里面包含了四个核心的组件,分别是Client,Client Stub,Server以及Server Stub,这个Stub可以理解为存根。
- 客户端(Client),服务的调用方。
- 客户端存根(Client Stub),存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。
- 服务端(Server),真正的服务提供者。
- 服务端存根(Server Stub),接收客户端发送过来的消息,将消息解包,并调用本地的方法。
3.RPC框架设计图
4.代码结构图
5.代码运行图
6.代码地址
my-rpc: 手写简单rpc框架,该框架基于 netty+springboot 进行开发,实现了 客户端到多服务端的逻辑,非常适合小白以及刚接触rpc框架的开发人员研究学习! (gitee.com)
第一次编写rpc框架,有什么错误或者是哪里不足的地方勿喷,留言告诉我,我会及时改成,欢迎大家留言!!