一 、 RPC框架的底层原理封装
1.客户端Controller
2.服务端Server
3.业务接口LoginServiceInterface
如图:
1.首先controller会根据业务员接口,生成一个客户端socket程序动态代理对象proxy
2.controller通过proxy调用业务的方法,例如:proxy.login(username,password)
3.然后controller调用socket的请求方法
4.通过socket向service发送请求
5.service端soceket收到请求后,会生成接口实现类的动态代理对象
6.调用业务代理对象的具体业务方法,logxinimpl(username,password)
7.获取方法的返回结果
8.controller通过socket获取service端的返回结果,并进行接下来的业务处理
二 、RPC通信的好处
通过Hadoop的RPC通信------>java实现那一篇可以看到,通过RPC使得通信更为方便,将复杂的代码封装好,我们需要做的只是简单的几步即可:
第一步:
服务端
1. 实现业务接口,写好实现类
2. RPC.Server server = new RPC.Builder(conf),传ip,port等参数即可
第二步:
客户端
1.得到代理对象Bizable proxy = RPC.getProxy
2.调用方法proxy.sayHi();