RPC通讯原理与详细代码

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

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

二、源码例子分布式

Interface:ide

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

 

RPCServer:ui

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:spa

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);
        }
}               
相关文章
相关标签/搜索