许多语言都有内置的RPC技术。 在RMI.NET Java Remoting的古代,有很多尝试:CORBA(公共对象请求代理架构)公共对象请求代理架构,OMG组织在1991年提出了公共对象请求代理程序结构的技术规范。 底层结构基于面向对象模型,由三个关键模块组成:OMG接口定义语言(OMG IDL)、Objec tRequest Broker (ORB)和IIOP标准协议(Internet Inter ORB协议,也称为网络ORB交换协议)。 COM(组件对象模型)是微软在1993年提出的一种组件技术。它是一种中间件技术,具有平台独立性、语言中立性、位置透明性和网络支持性。 许多老程序员心目中的“COM的本质”这本书 1从用户考虑定义流程接口image客户端使用生成的存根代理对象image2客户端的设计客户端生成流程接口的代理对象。 客户端代理工厂,接口的代理对象可以由JDK动态代理(或AOP实现)生成。 imageclientstubinationalhandlerimage消息协议是固定的吗?和什么有关?如果框架支持多种协议,就会灵活变化。它与特定的服务有关。服务提供商a可以选择协议1,服务提供商B可以选择协议2。 服务使用什么消息协议?这些信息从何而来?根据所获取的服务信息,需要服务信息查找器。 设计发现者需要:灵活支持多种发现机制。imageimage希望支持多种协议。班级应该怎么设计?面向接口,策略模式,组合映像问题:应该为编组和解组方法定义什么参数和返回值?分组和解组的对象是请求和响应,请求和响应的内容是不同的。 分组和解组两种方法能满足吗?设计客户端协议层的请求定义框架标准,响应类镜像将协议层扩展为四个镜像消息。网络层独立发送请求(客户端和服务器都需要)。要获得响应,您必须知道服务地址映像。在实现过程中,协议层涉及到一个重要的概念参数序列化,逆序3。设计服务器3.1 RPCServer。客户端请求,服务器首先需要通过RPCServer接收请求。 ImageimageRPCServerimage3.2思考RPCServer收到客户端请求后需要做哪些工作?图像网络层在RPCServer中提供多线程来解决请求,消息协议层通过复用客户端来设计。 (设计一个请求解析类,完成网络层以上的事情。 )3.3 RequestHandlerPCServer收到请求后,将请求交给RequestHandler解决问题。RequestHandler调用协议层将请求消息解组到请求对象中,然后调用流程!图像对人性的拷问RequestHandler如何获取进程对象?请求里有什么?服务名、方法名、参数类型和参数值可以需要一个进程注册模块吗?之后再看图像流程注册模块的设计:让客户在RPC框架流程暴露模块中注册自己的流程:如果要发布(暴露)服务,可以通过同一个类注册和暴露。网络层:Netty在imageRPCServer中实现,使用RequestHandlerServiceRegister模块实现服务注册和发布。 消息协议解决方案和过程调用代码实现在RequestHandler中实现。首先,客户需要设置你的端口和协议。imageimage相关源代码。