RPC-Exercise

阅读时长: 2 分钟 407 字

一个RPC(Remote Procedure Call)远程过程调用的练习程序。

\---client
        Client.java
        Connector.java
        DynamicProxyFactory.java
        RemoteCall.java
        RPCService.java
        RPCServiceImpl.java
        Server.java

RemoteCall.java

是一个用于传输的对象。它是RPC(远程过程调用)系统中非常关键的一个组件,负责封装远程方法调用的所有必要信息。

RPCService.java

一个接口,定义request方法。

RPCServiceImpl.java

RPCService的实现类,实现request方法。

Client.java

客户端,调用DynamicProxyFactory.getProxy返回动态代理对象,从而进行远程调用。

Connector.java

协助客户端与服务器之间通信的通信工具类,主要包括建立网络连接、数据传输、连接管理。

DynamicProxyFactory.java

用于创建客户端的动态代理对象。主要功能就是隐藏了网络通信细节,将方法调用转换为网络请求。返回进行远程调用的动态代理。

Server.java

服务端,用于接收客户端请求、执行本地服务实现的方法并返回结果。首先监听指定端口,然后注册服务,再启动服务。在服务运行的过程中不断接到连接请求,接到连接请求后便开启新线程处理请求。

总结

实现远程过程调用主要就是使用动态代理对象,让其看起来像切切实实的本地方法,但实际是隐藏了网络通信细节,将方法调用转换为网络请求,从而获取到远程调用的结果。服务端只需要不断地监听端口,处理请求并返回RemoteCall对象即可。

本网站已运行: 计算中...
备案 赣公网安备36072502000191 | 赣ICP备2024040374号
使用 Hugo 构建 · 主题 Stack 由 Jimmy 设计