这里有两个需要大家注意的地方:
序列化和反序列化的方式
就序列化而言,Java提供了默认的序列化方式,但在高并发的情况下,这
种方式将会带来一些性能上的瓶颈,于是市面上出现了一系列优秀的序列
化框架,比如:Protobuf、Kryo、Hessian、Jackson等,它们可以取代
Java默认的序列化,从而提供更高效的性能。不过在入门案例中,我们先
采用Java的默认序列化方式。
网络传输的方式
现在主流的RPC框架主要有两种网络传输方式:一种是Http协议,一种是
TCP协议。事实上TCP才是底层的传输协议,Http是在TCP基础上进行了
封装的应用层协议。大部分情况下,TCP协议的效率会更改。所以我们采
用TCP方式传输数据。
而TCP方式又有传统的BIO(阻塞IO),性能更好的NIO(非阻塞IO)。
当然我们可以选择非常热门的框架Netty来编写代码。不过因为有一定的学
习成本,在入门案例中,我们将采用JDK原生的网络编程来实现。
请求参数和响应结果封装
请求参数中需要包含的数据:
服务的接口名
接口中的方法名
方法的参数类型(以防方法重载)
方法的参数值
响应结果要包含的数据:
响应的状态(请求不一定会成功)
异常信息
结果数据