手写RPC框架(netty+zookeeper)
RPC是什么?远程过程调用,过程就是业务处理、计算任务,像调用本地方法一样调用远程的过程。 RMI和RPC的区别是什么?RMI是远程方法调用,是oop领域中RPC的一种实现,我们熟悉的restfull和webservice都是RPC,仅仅消息的组织方式和消息协议不同。 RPC调用过程 : 1、客户端处理过程中调用client sub(像调用本地方法一样),传递参数 2、client sub将参数编组为消息,然后通过系统调用想服务端发送消息 3、客户端本地操作系统将消息发送给服务端 4、服务端操作系统将收到的消息包传给server sub, 5、server sub解组消息为参数 6、server sub 调用本地服务,执行结果以反方向相同步骤返回给客户端 RPC协议 消息由哪些部分构成及消息的表示形式就构成了消息协议,RPC调用过程中采用的消息协议称为RPC协议,可以使用通用的协议(http、https),也可以自定义协议 RPC框架 封装好参数编组、消息解组、底层通信的RPC程序开发框架,可以在其基础上只需专注于过程代码编写,例如常用的dubbo和springcloud。 实现RPC的要点有:消息编组解组、服务注册发现和底层通信,本次基于JDK序列化编组解组消息