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

扫一扫 手机阅读

¥ 49.00 原价¥ 68.00
限时优惠
课程目录已更新9节
全部 试读

课程亮点

  • 全网稀缺的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框架。

课程目录已更新9节
适合人群
  • 即将毕业,想从事后端开发工作的同学(有基本的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下载
官方微信