RPC 原理浅析
实现简单 RPC 的基础模块:
- 处理网络连接通讯的模块:负责连接建立、管理和消息的传输。
- 编解码的模块:将网络通讯传输的字节码反序列化为使用的对象,将对象序列化为字节码
- 服务端:暴露要开放的服务接口
- 客户端:调用服务接口的一个代理实现,这个代理实现负责收集数据、编码并传输给服务器然后等待结果返回
简单实现
Dubbo 作者梁飞的简单实现 RPC 框架几行代码就够了]
框架代码
定义服务接口
实现服务
暴露服务
引用服务
总结
- 使用阻塞的 socket IO 流来进行 server 和 client 的通信
- 端对端的,用端口号来直接进行通信
- 参数的序列化也是使用的最简单的 objectStream
- 方法的远程调用使用的是 jdk 的动态代理
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于