hadoop的RPC框架封装思想(简要步骤)

hadoop的RPC框架封装思想

我们这里用controller远程访问服务端的一个方法login()为例,来简要说明一下hadoop的RPC框架封装思想

本例可以参考以下文章

Hadoop的第一个rpc实现——hello likilone

1、通过客户端与服务端共有的接口,生成客户端的一个代理对象

2、通过代理对象调用业务逻辑方法,为什么可以调用,因为这个代理对象是通过共有的接口获得的

3、RPC框架调用senMsg()方法,将客户端的请求发送给服务端(这里就相当于我们的socket了)

4、服务端接收到消息 response(),然后生成动态的代理对象

5、然后就可以执行服务端的具体业务逻辑了

6、将得到的结果通过receiveMsg()发送给客户端

7、客户端response()接收到消息

8、最后返回消息

以上红色部分的四条(3、4、6、7),就类似于我们的socket部分

想想我们以前的socket程序是怎么写的

客户端:

1、得到服务端对象,里面定义了他的地址端口等

2、然后通过getOutputStream获得服务的数据输入流,代码如下


BufferedReader input = new BufferedReader(new InputStreamReader(sk.getInputStream()));
sk表示服务器对象


3、本地处理,然后向服务端发送数据

服务端:

1、我们的服务端是 一个线程类,他不停的运行接收来自客户端的数据

2、服务端启动:new Thread(st).start();


在hadoop的RPC框架中,我们就比不要去写底层的socket实现了,我们只需要写好客户端,服务端,然后生成代理对象,然后通过代理对象去执行。

至于中间的socket,已经由hadoop的RPC给我们封装好了。


如果您觉得本文章对您有用,也为了更好的运营博客,您可以点击这里捐助

评论 抢沙发

昵称 (必填) 邮箱 (必填)
表情