手写RPC(二) 碎碎念

什么是RPC?

远程过程调用,既然是远程,那一定是跨机器的,即服务的调用者和提供者不在同一台机器(当然,你非要把他们放在一台机器也没问题),数据的交换需要经过网络传输。
在这里插入图片描述
我们知道网络传输的是二进制数据,即 01,因此发起远程调用时,必须把数据转化为二进制(序列化)才能通过网络传输,服务提供者收到数据以后需要还原数据(反序列化)才能知道真正传输的数据,然后调用方法实现,返回结果给调用方(返回结果时同样要进过序列化反序列化的过程)。

RPC框架隐藏底层网络通信的复杂性,屏蔽远程调用跟本地调用的区别,让我们更专注于业务逻辑。

写RPC框架需要什么基础知识?

  1. java的基本语法(因为我只会java);
  2. 网络编程的知识;
  3. 代理的基本知识;

有了这些基础知识你就可以写一个乞丐版的RPC框架了,都是你所知道的基础的知识,即使这些知识你都会,你真的能写一个RPC出来吗?我相信能给出肯定答案的人一定不多。因为之前的我就是这样,这些基础知识都知道,甚至能讲出原理,但是真正要把他们组合起来实现一个RPC的时候,我才发现,无处下手!在这里插入图片描述

好在我看了不少大神写rpc的经验以及示例代码,终于让我有信心来完成这样一次 “壮举” 。定个小目标,先写出一个乞丐版,能完成基本的远程调用。
在这里插入图片描述

系列文章传送门如下:
手写RPC(一) 絮絮叨叨
手写RPC(三) 基础结构搭建
手写RPC(四) 核心模块网络协议模块编写 ---- netty服务端
手写RPC(五) 核心模块网络协议模块编写 ---- 自定义协议
手写RPC(六) 核心模块网络协议模块编写 ---- 实现编解码器
手写RPC(七) 核心模块网络协议模块编写 ---- 实现客户端
手写RPC(八) provider、consumer 实现
手写RPC(九) 测试
手写RPC(十) 优化
关于 LengthFieldBasedFrameDecoder 不得不说的事

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不务正业的攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值