小冊推薦|Java開發(fā)者的RPC實(shí)戰(zhàn)課
小冊推薦|Java開發(fā)者的RPC實(shí)戰(zhàn)課
作者介紹
DannyIdea(小林),目前就職于珍愛網(wǎng),從事Java方向的技術(shù)研發(fā),有社交、金融、B端方面的開發(fā)經(jīng)驗(yàn),平時(shí)喜歡鉆研開源技術(shù),負(fù)責(zé)過大型微服務(wù)系統(tǒng)重構(gòu)的核心開發(fā),有過團(tuán)隊(duì)的基礎(chǔ)組件開發(fā)經(jīng)驗(yàn)。
曾有半年時(shí)間,參與Dubbo源代碼設(shè)計(jì)與分析的工作,開源過一款可視化的Dubbo測試平臺iubbox,并在企業(yè)中落地使用,后期加入過Dubbo社區(qū)的開源團(tuán)隊(duì)。
小冊背景
當(dāng)下,企業(yè)技術(shù)不斷變革迭代,流量也隨著用戶體量的上升,出現(xiàn)了斷崖式的暴增,隨之而來的是,越來越多的技術(shù)團(tuán)隊(duì)開始關(guān)注服務(wù)之間的調(diào)用性能、調(diào)用鏈路治理、服務(wù)之間的熔斷降級等技術(shù)問題。
相信各位在工作中都或多或少接觸過這類技術(shù),常見的應(yīng)用場景如:從本地機(jī)器發(fā)送請求通知遠(yuǎn)程的目標(biāo)機(jī)器,獲取對方的處理結(jié)果數(shù)據(jù)。
請求的類型有很多種, 市面上常見的遠(yuǎn)程調(diào)用方式主要分為兩個(gè)派別:HTTP請求調(diào)用、 RPC 請求調(diào)用。
相比之下,RPC調(diào)用主要是基于 TCP/IP 協(xié)議的,而 HTTP 調(diào)用主要是基于 HTTP 協(xié)議的,我們都知道 HTTP 協(xié)議是在傳輸層協(xié)議 TCP 之上的,因此從性能層面來說, 通常RPC請求的效率會比HTTP要高效一些 。
在大型互聯(lián)網(wǎng)企業(yè)中,RPC 技術(shù)也是遠(yuǎn)程調(diào)用的通用技術(shù)棧,例如Dubbo、Grpc、Thrift 等。對于Java開發(fā)工程師而言, 熟悉Dubbo等RPC技術(shù)基本已經(jīng)成了互聯(lián)網(wǎng)公司高級研發(fā)工程師的必備技能。
一款合格的RPC中間件內(nèi)部的設(shè)計(jì)細(xì)節(jié)十分考究,如內(nèi)部的服務(wù)發(fā)現(xiàn)機(jī)制、負(fù)載均衡策略、容錯(cuò)降級、調(diào)用重試、異步隊(duì)列、事件解耦等手段。
在平時(shí)的微服務(wù)調(diào)用鏈路中,如果你沒有對這些技術(shù)有足夠深入的了解,就難以對現(xiàn)有的微服務(wù)調(diào)用鏈路有更深入的認(rèn)識,例如改造路由規(guī)則、對調(diào)用鏈路的性能進(jìn)行優(yōu)化等。
而這些細(xì)節(jié)點(diǎn),光靠硬著頭皮看源代碼是學(xué)不來的。
小冊介紹
這本小冊會從0到1實(shí)現(xiàn)一款 RPC 框架 ,讓你能深入到底層原理,透徹地理解RPC框架。
整款RPC框架采用Java語言進(jìn)行開發(fā),組件的設(shè)計(jì)風(fēng)格會與 Dubbo框架有部分相似, 所以本小冊比較適合有一定Java基礎(chǔ)的小伙伴 。另外在實(shí)現(xiàn)RPC框架的同時(shí),我們也會講解很多技術(shù)點(diǎn),比如:
在網(wǎng)絡(luò)通信過程中,nio,bio,aio,netty到底應(yīng)該如何選型; 拋開語言層面,操作系統(tǒng)層面理解io; JDK內(nèi)部各種常見隊(duì)列的底層實(shí)現(xiàn)細(xì)節(jié)分析; RPC調(diào)用過程中的同步轉(zhuǎn)異步底層實(shí)現(xiàn); 代理技術(shù)是如何運(yùn)用到RPC框架中的; 并發(fā)編程技術(shù)在中間件技術(shù)中的實(shí)際應(yīng)用; ……
本小冊會給出全部實(shí)際代碼。 為了能夠方便每一講都對應(yīng)整理好源代碼,本小冊會按照不同的課程創(chuàng)建不同的git分支,然后分別上傳對應(yīng)的代碼案例到gitee中,希望能夠方便你邊看邊比對學(xué)習(xí)。
不同分支的代碼只需要微調(diào)下自己的配置文件,基本可以保證運(yùn)行正常,隨著課程的遞增,你會看到越靠后的分支的代碼結(jié)構(gòu)和復(fù)雜度也在遞增,這正好對應(yīng)了該RPC框架在日漸完善中的變化。
每篇課程的內(nèi)容可能都會有先后依賴順序,如果跳躍學(xué)習(xí)的話容易出現(xiàn)斷層的情況,所以建議你從頭到尾一篇篇地閱讀和思考。
開發(fā)環(huán)境
IDEA (我是用的2019.3版本) JDK1.8 Maven 3.5+
適宜人群
熟悉Java語言,并且對Dubbo等RPC中間件技術(shù)感興趣的同學(xué)。 1-3年經(jīng)驗(yàn)的開發(fā)人群。 對RPC設(shè)計(jì)原理感興趣人群。 準(zhǔn)備參加春秋招的應(yīng)屆畢業(yè)生。 每天都在crud,對技術(shù)成長充滿渴望的人群。
趕緊戳鏈接 《Java開發(fā)者的RPC實(shí)戰(zhàn)課》 一起加入學(xué)習(xí)吧~
-
2023年各省最新電價(jià)一覽!8省中午執(zhí)行谷段電價(jià)! 2023-01-03
-
PPT導(dǎo)出高分辨率圖片的四種方法 2022-09-22
-
全國消防救援總隊(duì)主官及簡歷(2023.2) 2023-02-10
-
盤點(diǎn) l 中國石油大慶油田現(xiàn)任領(lǐng)導(dǎo)班子 2023-02-28
-
我們的前輩!歷屆全國工程勘察設(shè)計(jì)大師完整名單! 2022-11-18
-
關(guān)于某送變電公司“4·22”人身死亡事故的快報(bào) 2022-04-26
