首页 文章 精选 留言 我的

精选列表

搜索[编译原理],共10011篇文章
优秀的个人博客,低调大师

RPC原理

Remote Procedure Call RPC——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不须要了解底层网络技术的协议。 RPC协议假定某些传输协议的存在。如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包含网络分布式多程序在内的应用程序更加easy。 RPC採用客户机/server模式。请求程序就是一个客户机。而服务提供程序就是一个server。首先,客户机调用进程发送一个有进程參数的调用信息到服务进程,然后等待应答信息。 在server端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,server获得进程參数,计算结果,发送答复信息,然后等待下一个调用信息。最后,client调用进程接收答复信息,获得进程结果。然后调用运行继续进行。 hadoop的整个体系结构就是构建在RPC之上的(见org.apache.hadoop.ipc)。 样例 Server.java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ipc.RPC; import org.apache.hadoop.ipc.Server; public class RPCServer { static final String ADDRESS = "localhost"; static final int PORT = 12345; public static void main(String[] args)throws Exception { Server server = new RPC.Builder(new Configuration()) .setInstance(new RPCBiz()) .setBindAddress(ADDRESS) .setPort(PORT) .setProtocol(RPCBizable.class) .build(); server.start(); } } Client.java import java.net.InetSocketAddress; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ipc.RPC; public class RPCClient { public static void main(String[] args) throws Exception{ RPCBizable proxy = RPC.getProxy(RPCBizable.class, 10010, new InetSocketAddress("localhost", 12345), new Configuration()); final String result = proxy.hello("yew1eb"); System.out.println(result); //关闭网络连接 RPC.stopProxy(proxy); } } RPCBiz.java public class RPCBiz implements RPCBizable{ @Override public String hello(String name){ System.out.println("我被调用"); return "hello "+name; } } RPCBizable.java public interface RPCBizable { public static final long versionID = 10010; public String hello(String name); } 总结 RPC是一个远程过程调用。 client调用服务端的方法,意味着调用服务端的对象中的方法。 假设服务端的对象同意client调用,那么这个对象必须实现接口。 假设client可以调用到服务端对象的方法。那么这些方法一定位于对象的接口中。 链接 https://en.wikipedia.org/wiki/Remote_procedure_call 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5381688.html,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册