小册推荐|Java开发者的RPC实战课
小册推荐|Java开发者的RPC实战课
juejinxiaoce
掘金小册,一个小篇幅、高浓度、成体系、有收益的技术学习平台
作者介绍
DannyIdea(小林),目前就职于珍爱网,从事Java方向的技术研发,有社交、金融、B端方面的开发经验,平时喜欢钻研开源技术,负责过大型微服务系统重构的核心开发,有过团队的基础组件开发经验。
曾有半年时间,参与Dubbo源代码设计与分析的工作,开源过一款可视化的Dubbo测试平台iubbox,并在企业中落地使用,后期加入过Dubbo社区的开源团队。
小册背景
当下,企业技术不断变革迭代,流量也随着用户体量的上升,出现了断崖式的暴增,随之而来的是,越来越多的技术团队开始关注服务之间的调用性能、调用链路治理、服务之间的熔断降级等技术问题。
相信各位在工作中都或多或少接触过这类技术,常见的应用场景如:从本地机器发送请求通知远程的目标机器,获取对方的处理结果数据。
请求的类型有很多种, 市面上常见的远程调用方式主要分为两个派别:HTTP请求调用、 RPC 请求调用。
相比之下,RPC调用主要是基于 TCP/IP 协议的,而 HTTP 调用主要是基于 HTTP 协议的,我们都知道 HTTP 协议是在传输层协议 TCP 之上的,因此从性能层面来说, 通常RPC请求的效率会比HTTP要高效一些 。
在大型互联网企业中,RPC 技术也是远程调用的通用技术栈,例如Dubbo、Grpc、Thrift 等。对于Java开发工程师而言, 熟悉Dubbo等RPC技术基本已经成了互联网公司高级研发工程师的必备技能。
一款合格的RPC中间件内部的设计细节十分考究,如内部的服务发现机制、负载均衡策略、容错降级、调用重试、异步队列、事件解耦等手段。
在平时的微服务调用链路中,如果你没有对这些技术有足够深入的了解,就难以对现有的微服务调用链路有更深入的认识,例如改造路由规则、对调用链路的性能进行优化等。
而这些细节点,光靠硬着头皮看源代码是学不来的。
小册介绍
这本小册会从0到1实现一款 RPC 框架 ,让你能深入到底层原理,透彻地理解RPC框架。
整款RPC框架采用Java语言进行开发,组件的设计风格会与 Dubbo框架有部分相似, 所以本小册比较适合有一定Java基础的小伙伴 。另外在实现RPC框架的同时,我们也会讲解很多技术点,比如:
在网络通信过程中,nio,bio,aio,netty到底应该如何选型; 抛开语言层面,操作系统层面理解io; JDK内部各种常见队列的底层实现细节分析; RPC调用过程中的同步转异步底层实现; 代理技术是如何运用到RPC框架中的; 并发编程技术在中间件技术中的实际应用; ……
本小册会给出全部实际代码。 为了能够方便每一讲都对应整理好源代码,本小册会按照不同的课程创建不同的git分支,然后分别上传对应的代码案例到gitee中,希望能够方便你边看边比对学习。
不同分支的代码只需要微调下自己的配置文件,基本可以保证运行正常,随着课程的递增,你会看到越靠后的分支的代码结构和复杂度也在递增,这正好对应了该RPC框架在日渐完善中的变化。
每篇课程的内容可能都会有先后依赖顺序,如果跳跃学习的话容易出现断层的情况,所以建议你从头到尾一篇篇地阅读和思考。
开发环境
IDEA (我是用的2019.3版本) JDK1.8 Maven 3.5+
适宜人群
熟悉Java语言,并且对Dubbo等RPC中间件技术感兴趣的同学。 1-3年经验的开发人群。 对RPC设计原理感兴趣人群。 准备参加春秋招的应届毕业生。 每天都在crud,对技术成长充满渴望的人群。
赶紧戳链接 《Java开发者的RPC实战课》 一起加入学习吧~
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
