RPC通信原理与详细代码

1、RPC(全拼:Remote Procedure Call)远程过程调用协议,是一种通过网络从远程电脑程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,例如http或TCP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层使得RPC在开发包活网络分布式多程序在内的应用程序时更加的方便,容易。

  RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务端进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息的到来,最后客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。

2、源码例子

Interface:

1 public interface Barty{
2     public static final long versionID = 10010;
3     public String sayHello(String name);
4 }

 

RPCServer:

public class RPCServer implements Barty{
    public static void main(String[] args) throws Exception{
        Server server = new RPC.Builder(new Configuration())
        .setInstance(new RPCServer())
        .setBindAddress("192.168.8.100")
        .setPort(5566)
        .setProtocol(Barty.class)
        .build();
       server.start();
    }
    @Override
    public String sayHello(String name){
        return "Hello~"+name;
    }
}

RPCClient:

public class RPCClient{
        public static void main(String[] args){
            Barty proxy = RPC.getProxy(Barty.class,10010
                           ,new InetSocketAddress("192.168.8.100",9527)
                           ,new Configuration());
            String sayHello = proxy.sayHello("World");
            System.out.println(sayHello);
        }
}               

 

posted @ 2014-11-27 23:44  敬自由  阅读(655)  评论(0)    收藏  举报