RPC致力于本地化调用的方式调用远程服务,那么要做到这点有哪些工作要做呢,权且分析一下
1、建立到远程服务的链接,这一步可通过tcp协议完成,http当然也可以
2、数据的序列化与反序列化,由于数据需在网络上传输,所以远程服务名称,参数值等需做序列化处理,这块的性能是衡量RPC框架性能的重点关注点之一
3、数据的传输,可靠性及容错等,需要网络通信框架的支持,目前主流是netty
4、服务端接收到数据后的处理方式,单线程还是多线程等
5、数据的返回,异步同步等不同的网络IO模型
以上即为RPC框架所需考虑的问题,那么具体到开发就比较简单了,一般只需引入RPC框架,建立client stud,之后的一切交给框架即可,当然这是刚入门的要求,
若涉及到项目技术选型则需对各个RPC框架的优缺点做一对比,选出符合项目场景的方案,后面待学习常用的框架后再以总结