hadoop17---RPC和Socket的区别

本文介绍了RPC(Remote Procedure Call)的概念,它是基于Socket的高级通信方式。通过一个简单的Java RPC Server和RPC Proxy的实现,展示了如何通过Socket进行远程方法调用。示例代码解释了如何处理请求和响应,帮助理解RPC的基本工作原理。
摘要由CSDN通过智能技术生成

RPC是在Socket的基础上实现的,它比socket需要更多的网络和系统资源。RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用).

 

简单RPC之Socket实现

最近看到Dubbo大神写得使用Socket实现的简单的RPC调用,对RPC的理解更简单了,然后根据大神的代码自己也重构了一下。

RPC Server端代码,主要是使用ServerSocket获得rpc调用客户端发送过来的类信息,方法信息及方法参数信息,通过反射在RPCServer端进行代码执行,最后将执行结果发送给Socket,第一步需要首先执行RPCServer。

 

[java]  view plain   copy
 
  1. import java.io.IOException;  
  2. import java.io.ObjectInputStream;  
  3. import java.io.ObjectOutputStream;  
  4. import java.lang.reflect.InvocationTargetException;  
  5. import java.lang.reflect.Method;  
  6. import java.net.ServerSocket;  
  7. import java.net.Socket;  
  8. import java.util.concurrent.ConcurrentHashMap;  
  9. /** 
  10.  * 服务端 
  11.  * @author tianjunwei 
  12.  */  
  13. public class RPCServer {  
  14.   
  15.     public static ConcurrentHashMap<String, Object> classMap = new ConcurrentHashMap<String,Object>();  
  16.       
  17.     public static void main(String [] args) throws Exception{  
  18.         System.err.println("server start");  
  19.    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值