A high performance, distributed RPC framework. 高性能分布式远程过程调用框架
APACHE-2.0 License
在RPC(远程过程调用)中,"stub" 和 "skeleton" 是两个关键概念,它们代表着不同的角色和功能:
总的来说,Stub 位于客户端,是客户端用来调用远程服务的本地代理对象; 而 Skeleton 位于服务器端,是服务器用来处理客户端请求并实际执行远程服务的代理对象。 Stub 主要用于客户端编程,Skeleton 则用于服务端编程,它们分别代表了在客户端和服务端对远程服务进行调用和处理的方式。
Netty底层使用Hessian2序列化协议,在channel中直接传输RpcRequest和RpcResponse对象,但是入站和出站需要经过NettyEncoder和NettyDecoder编码和解码(序列化/反序列化),相当于是TCP协议。
NettyHttp底层使用Hessian2序列化协议,在channel中传输之前需要将RpcRequest和RpcResonse对象装箱和拆箱为Http报文格式(请求头:host+keepAlive+contentLenth 和 请求体),入站和出站需要经过Netty包下的HttpClientCodec和HttpObjectAggregator编码和解码(装箱/拆箱+序列化/反序列化),相当于是HTTP协议。
是的,HTTP 请求和响应的数据可以使用不同的序列化方式,包括 Hessian2 格式。Hessian2 是一种二进制序列化协议,与 JSON 格式相比,它更加紧凑,适合在网络传输中使用。 要在 HTTP 请求和响应中使用 Hessian2 序列化方式,你需要做以下工作: