首页 > 编程知识 正文

rpc与nfs的关系,HDFS的读写机制具体流程

时间:2023-05-03 12:57:32 阅读:195541 作者:1017

RPC 是远程过程调用 (Remote Procedure Call),即远程调用其他虚拟机中运行的 java
object。 RPC 是一种客户端/服务器模式, 那么在使用时包括服务端代码和客户端代码, 还有
我们调用的远程过程对象。

RPC调用机制,如下图

PRC cline 和 service 端必须实现同一接口!
、、、、、运行机制、***、、、、
1、先获取 interface 接口 和 service 代理对象。
2、通过代理对象调用该代理类的业务方法,并调用socket的发送请求的方法。
3、服务端接收请求,并反射出请求中的动态代理类。
4、同时生成socket和该类的动态代理,并实现该类的逻辑。
5、通过socket相应该类运行结果给客户端
6、客户端通过接收service端的请求,获取运行结果。

RPC Cline端

java代码:

public interface MyRpc {//版本信息public static final long versionID = 1L;//业务方法public String loginServer(String name , String password);}

client 端通过RPC.getProxy获取本地代理

public class Test {public static void main(String[] args) throws Exception {//获取MyRpcMyRpc proxy = RPC.getProxy(MyRpc.class, 1L, new InetSocketAddress("10.30.95.166", 10000), new Configuration());System.out.println(proxy.loginServer("zldrg", "213123"));}}

service端

MyRpcImpl 实现了MyRpc,并通过RPC.Builder获取Builder

public class MyRpcImpl implements MyRpc {@Overridepublic String loginServer(String name, String password) {return "欢迎"+name+"登陆";}} public class Test {public static void main(String[] args) throws Exception {Builder builder = new RPC.Builder(new Configuration());builder.setBindAddress("10.30.95.166").setPort(10000).setProtocol(MyRpc.class).setInstance(new MyRpcImpl());Server build = builder.build();build.start();}}

运行结果:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。