首页 > 学院 > 开发设计 > 正文

RPC通信原理与详细代码

2019-11-14 22:03:05
字体:
来源:转载
供稿:网友
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);        }}               


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表