上节课我们一起学习了如何将Hadoop与Java程序相结合,这节我们共同来学习RPC请求及应用。首先看一下RPC的定义及原理,如下图所示,我们也可以这样简单地理解RPC:RPC就是不同进程间的方法调用。

Hadoop学习第九课(RPC)

         接下来我们用Java程序和RPC相结合来更好的理解RPC。

       首先我们需要定义一个接口类,这个接口类需要由服务端来实现,如下图所示

Hadoop学习第九课(RPC)

         接下来我们定义RPCServer,如下图所示

Hadoop学习第九课(RPC)

          接下来我们来看一下RPCClient端代码,如下图所示

Hadoop学习第九课(RPC)


       怎么个玩法呢?首先我们启动RPCServer程序,接着我们再运行RPCClient端的main方法,我们会发现在控制台会输出Hi-tom的信息,说明我们客户端调用服务端内部的方法确实调用成功了!

       接下来我们来玩一下让Windows系统和Linux系统之间通过RPC协议通信,我们把RPCClient端打包成jar包,打包的过程如下图所示,打包第一步:在工程上右键,点击Export

Hadoop学习第九课(RPC)


       打包jar第二步:我们点击上图的Export之后会弹出如下窗口,我们选择Java下面的Runnable JAR file,然后点击下一步。如下图所示。

Hadoop学习第九课(RPC)


     打包jar第三步:我们进入如下图所示界面我们Launch configuration这一栏选择“RPCClient - Hadoop”,Export destination(打包到本地的地址)我把它打包到了我本地E盘的根目录下,起名为RPCClient.jar。然后点击Finish。

Hadoop学习第九课(RPC)


        我们把打好的jar包上传到Linux系统root目录下。我们在执行RPCClient.jar之前先启动RPCServer,并在sayHi方法中打断点。这样我们可以更明显的看到Linux上的客户端是否真的调用成功了Windows系统上的Server内的方法。

       启动完Server之后我们在Linux系统上执行RPCClient.jar,如下图所示,执行jar的命令是:java -jar RPCClient.jar,执行jar之后我们发现方法被卡住了,一直在等待返回结果。

Hadoop学习第九课(RPC)

        这时我们再来看一下Windows系统的Server端的断点情况,如下图所示,我们Linux系统运行Client之后确实调用到了服务端的sayHi方法!,Linux系统中之所以在等待返回结果,就是因为这里我们打了断点,这时我们让服务端的方法执行完。

Hadoop学习第九课(RPC)

          我们再反过来看一下Linux系统上是否有了返回值,我们发现这时信息当中打印出了Hi-tom的信息,说明Linux系统确实通过PRC协议实现了与Windows系统之间的连通!

Hadoop学习第九课(RPC)

相关文章:

  • 2021-06-27
  • 2021-04-14
  • 2021-05-14
  • 2021-09-13
  • 2021-11-21
  • 2021-04-11
  • 2021-04-21
  • 2021-12-22
猜你喜欢
  • 2021-09-18
  • 2022-01-21
  • 2021-10-07
  • 2021-07-07
  • 2021-10-20
  • 2021-11-19
  • 2021-11-05
相关资源
相似解决方案