TCP为网络中的传输层
RPC全称是Remote Process Call 即远程过程调用,RPC将原来的本地调用转变为调用远端服务器上的方法,给系统的处理能力和吞吐量带来了近乎无限制提升的可能。RPC的实现包括客户端和服务端,即服务的调用方和提供方。服务的调用方发送RPC请求到服务的提供方,服务提供方根据调用方提供的参数执行请求方法,将执行结果返给调用方,一次RPC调用完成。随着服务提供者的增加与业务发展,不同的服务之间还需要进行分组,以隔离不同的业务。在这种情况下,服务的路由和负载均衡则成为必须要考虑的问题。
服务消费者通过获得服务提供者的分组信息和地址信息进行路由,如果服务提供者是集群,则需要根据相应的负载均衡策略,选取一台进行调用。
基于TCP协议的PRC调用,需要把对象进行序列化和反序列化。
序列化应用的技术包括java本身的序列化方式、Hessian、JSON和XML方式。
基于HTTP协议的RPC
HTTP协议应用层。Http协议构建在TCP和IP协议之上,处于TCP/IP体系架构中顶端,他不需要处理下层协议间丢包补发、握手及数据的分段和从新组装的细节,从而使开发人员注重应用层上的设计。