为了账号安全,请及时绑定邮箱和手机立即绑定
编程百科手册

扫一扫 手机阅读

课程目录已更新26节
全部 试读

课程亮点

  • 全网稀缺的 RPC 框架解析课程
  • 了解 web 应用架构的演变及 RPC 发展由来
  • 掌握 RPC 的深层实现原理
  • 掌握 RPC 框架各类组件的功能及应用
  • 收获 RPC 框架各类组件的热门实现方案
  • 收获通过组装组件实现简易 RPC 框架的能力

课程介绍

作为一个服务端的开发工程师,“分布式计算”、“微服务”、“集群”、“高可用” 等名词想必是家常便饭了。而这些都围绕着一项核心技术,那就是 RPC,即远程过程调用。随着人们需求的变化、技术时代的变迁、企业 IT 服务的发展,单台服务器开始无法承受用户日益增长的请求压力,所以此时就需要多台服务器联合组成 “服务集群” 一起对外提供服务。同时业务服务会随着产品需求的增加愈发庞大,对于开发和维护都会造成压力,因此在架构上必须对服务进行拆分。一个完整的大型服务会被打散成许多独立的小服务,由独立的进程去管理,并对外提供服务,这便是 “微服务”。

当用户请求到来时,我们需要将用户请求分散到各个独立的小服务去处理,又需要将这些独立小服务的结果汇总反馈给用户,所以服务之间的交互方式就是需要解决的核心问题,RPC 正是为此诞生和存在的。

RPC (Remote Procedure Call),即远程过程调用,是分布式系统常见的一种通信协议,已经有 40 多年历史。RPC 在大家熟知的中间件中都有它的身影,如 Nginx、Redis、MySQL 等重量级开源产品都是在 RPC 技术的基础上构建出来的。RPC 在技术中就像我们身边的空气,它看似不存在,却又无处不在,非它不可。

在这样的大环境下,各类公司也” 八仙过海,各显神通 “,纷纷打造各种各样的 RPC 框架。比如阿里的 Dubbo (现已成为 Apache 顶级项目)、Google 的 gRPC、Apache 的 Thrift、新浪微博的 Motan,还有老牌的 ZeroC 等等,每个框架都有各自的优缺点。那么我们该如何去读懂一个 RPC 框架?换句话说,一个 RPC 框架到底应该具备哪些东西?如果我们掌握了读懂 RPC 框架的技能,当我们再去了解一个新的 RPC 框架时,就可以轻松地将它分解,进而每一部分进行研读,这对我们的学习和工作来说,将事半功倍。

RPC 框架已经成为了后端工程师必须要掌握的技能之一,不管公司规模如何,都会用到 RPC 框架,并且一些大厂陆陆续续开源自己的 RPC 框架 RPC 框架无处不在,它是微服务架构下的必需品。在后端开发工程师的面试中,面试官会经常询问常用的 RPC 框架,然后对 RPC 框架中的细节展开进行考察,而 RPC 框架中的细节也就是 RPC 框架中的原理部分,所以 RPC 框架原理的学习是后端开发工程师跳槽涨薪必不可少的。

讲师 crazyhzm,一线 Java 工程师,一名开源爱好者,Apache Dubbo Committer,专注于中间件和分布式服务框架技术。

掌握本专栏的内容后,你会在脑海中对 RPC 有一张知识结构图,这张图会教你如何去掌握层次不穷的 RPC 框架,它能帮助你更加快速地分解各类 RPC 框架,从而学习其中优秀的实现方案,无论在实际工作过程中遇到问题需要研读源码,还是自我提升的学习研读,还是应对面试,它都是不可或缺的一项技能。

本专栏十分有趣,将 RPC 比喻成异地恋爱故事,更加具象地描述 RPC 框架的各个组件,使专栏通俗易懂,让读者能够更快地掌握相关知识点。

专栏模块:

本专栏主要分为以下 10 个模块,共 32 个小节:

第一部分:RPC 的介绍
本章介绍 RPC 的由来和发展,RPC 是什么以及 RPC 框架的调用过程。

第二部分:通讯录 — 注册中心
本章将注册中心比喻成通讯录,介绍注册中心在 RPC 框架中的作用,并且介绍分别用 Zookeeper 和 Nacos 来作为注册中心的利弊。

第三部分:通信设备 — 远程通信
本章将远程通信比喻成异地恋必备的通信设备,介绍远程通信在 RPC 框架中的作用,并且介绍分别用 Netty、Mina、Grizzly 作为实现客户端和服务端远程通信的方案。

第四部分:情侣间的暗语(上)— 信息交换:协议头的解析
本章介绍了协议头内容和编解码器,并且拿 Netty 举例子讲解了 Netty 中对于编解码器的封装。

第五部分:情侣间的暗语(下)— 序列化:协议体的解析
本章介绍了协议体至关重要的序列化,并且拿三种具有代表性的序列化框架 Fastjson、Kryo、Protobuf 进行讲解。

第六部分:送你的布娃娃 — 动态代理
本章介绍了 RPC 中关键的动态代理技术,并且分别介绍了用 JDK、CGLIB、Javassist 实现动态代理的方案

第七部分:下一任更好 — 集群
本章介绍了集群在 RPC 中的作用,分别介绍负载均衡、容错机制以及路由策略三部分内容。

第八部分:异国恋 — 跨言语 RPC
本章介绍跨语言的 RPC 调用解决方案,并且对比现有的跨语言 RPC 框架。

第九部分:亲身谈一场 — 实现基础 RPC 框架
本章将与大家一起组合各个组件,编写简易的 RPC 框架。

第十部分:看一看别人的恋爱 — 浅析 Dubbo
本章拿 Dubbo 举例子介绍如何运用前面所学的内容来读懂一个 RPC 框架。

课程目录已更新26节
精选留言
  • 懂渊

    写得很明白,更明白什么是 zookeeper的容错性了

适合人群
  • 即将毕业,想从事后端开发工作的同学(有基本的 Java 基础)
  • 工作 3 年左右的后端开发从业者
  • 想要从头到尾彻底弄清楚 RPC 框架知识体系的人群
  • 想要跳槽,准备面试,RPC 框架这一块知识薄弱的人群
购买须知
  1. 本专栏为图文形式内容服务,共计 32 小节,上线时间为 2019 年 12 月 3 日,预计 2020 年 2 月 22 日更新完成;
  2. 本专栏更新时间为每周一、三、五更新 1 篇(法定节假日顺延),形式为图文;
  3. 订阅成功后,用户即可通过慕课网 PC 端、App 端、WAP 端享有永久阅读的权限;
  4. 慕课专栏为虚拟内容服务,订阅成功后概不退款;
  5. 在专栏阅读过程中,如有任何问题,请邮件联系 kf@imooc.com;
  6. 慕课专栏版权归本平台所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布 / 发表,违者将依法追究责任。
造烛求明,读书求理
扫码关注慕课网服务号
干货分享
定期活动
课程优惠
专栏福利
官方优惠福利活动一手掌握,关注慕课网(ID:imooc-com),和30万+程序员一起成长!

本专栏知识点梳理

1.阅读本专栏需要一定的Java基础知识,可参考:

下载慕课网APP

更好的体验,让阅读随处可得

扫描二维码,下载慕课网APP
意见反馈 帮助中心 APP下载
官方微信