三百行代码完成一个简单的rpc框架
花了半天的时间写了个简单的rpc框架,是因为我最初看dubbo源码的时候发现dubbo虽然看起来很庞大,但是隐隐约约总感觉,其实其绝大多数功能,都是基于可扩张性和服务治理的需要而编写的。我看过dubbo和grpc的源码,这两个都是非常优秀的rpc框架,但是为了让初学rpc的同学能够快速抓住rpc的核心,所以写了这篇文章,希望看过的同学,再次去看dubbo的源码的时候,能够抓住这个核心去看。 一:rpc协议的接口 RpcProtocol.java public interface RpcProtocol { void export(int port); Object refer(Class inrerfaceClass,String host, int port); } 这个接口类只提供两个接口,那是因为对于一个rpc框架来说,本质上就只需要两个接口,一个是consumer引用provider的服务,一个是provider接收到consumer的请求之后对外暴露服务。 下面是具体的实现。代码不复杂,可以直接复制到idea,慢慢调试 二:rpc协议的具体实现 RpcCore.java public class RpcCore implements RpcProtocol{ private Socket socket; private ObjectOutputStream