从零手撸RPC

先了解下什么是RPC

随着互联网的发展,我们的系统不再只是一些简单的数据存储,承载了越来越多的现实中的业务,随之而来的是,我们系统也越来越复杂,一个单独的应用已经不能在承载全部的业务,所以需要把业务进行拆分,根据不同的业务域拆分出不同的业务系统。问题随之而来,不在一个应用后,原来写在一起的代码拆分到多个应用,他们之间该如何调用呢?为了解决这个问题,RPC应运而生。

RPC的核心模块

动态代理、序列化、协议、通讯、注册中心

动态代理

代理模式上,基本上有Subject角色,RealSubject角色,Proxy角色。其中:Subject角色负责定义RealSubject和Proxy角色应该实现的接口;RealSubject角色用来真正完成业务服务功能;Proxy角色负责将自身的Request请求,调用realsubject 对应的request功能来实现业务功能,自己不真正做业务。
代理模式,凸显出来的是“代理”二字,必然存在一个Proxy类。如果这个Proxy类是自己手写的class,被称为静态代理;如果这个Proxy类是代码生成的class,被称为动态代理。

如果感到快乐,你就拍拍手。