基于Netty的自定义RPC

2021-12-23 17:55:48 浏览数 (1)

之前学了一下Netty也做了一个Netty websocket的实时通讯工具,了解到公司有自研的RPC框架,为了了解一下就想自己捣鼓捣鼓,方便理解RPC

一 RPC干啥的?

RPC(Remote Procedure Call),即远程过程调用--(我个人觉得有点像c/s系统) 它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络实现的技术。

常见的RPC框架有:阿里的Dubbo,Spring旗下的Spring Cloud,Google出品的grpc等。

流程解读:
  1. 服务消费方(client)以本地调用方式调用服务RPC封装部分
  2. client stub 接收到调用后负责将方法、参数等封装成能够进行网络传输的消息体
  3. client stub 将消息进行编码并发送到服务端
  4. server stub 收到消息后进行解码
  5. server stub 根据解码结果调用本地的服务
  6. 本地服务执行并将结果返回给 server stub
  7. server stub 将返回导入结果进行编码并发送至消费方
  8. client stub 接收到消息并进行解码
  9. 服务消费方(client)得到结果

这样做的效果是客户得到远程的结果像是直接调用本地方法一样

0 人点赞