『腾讯』RPC实现原理(Java简单实现一个RPC)( 二 )


Provider
6、客户端定义一个Transport类 , 通过Socket和服务器传输数据 , 把数据通过Socket把请求发送给Server Socket并等待服务端返回结果 。
Transport
7、定义一个Consumer , 通过动态代理 , 为接口提供一个代理类 , 如果不熟悉可以看下Java的动态代理 。 在InvocationHandler的invoke中不是通过反射调用 , 而是通过socket调用服务端的方法 。
Consumer
8 , 执行结果 , 在Consumer中调用了HelloService的两个方法 , 我们启动下程序看看执行结果 。 先启动服务端的Provider , 在启动客户端的Consumer 。
输出结果
本文就从实现原理上简单实现了RPC的调用 , 本程序只是一个演示 , 还有很多不足的地方 , 比如注册中心 , 序列化协议 , 负载均衡 , 传输协议等 。


推荐阅读