極客時間出品的《Kafka核心技術與實戰》由胡夕所作,胡夕是人人貸計算平臺部總監,Apache Kafka Contributor。本專欄全面提升你的Kafka實戰能力。
訂閱價格:
用我的邀請購買,還會額外返現12元。購買連結:http://gk.link/a/103Gs也可以掃描頁面最下方海報圖中的二維碼購買。
購買的朋友請加我微訊號 dismissmewp ,備註:返現。
已有3711 人已學習 · 共42講 · 每週二 / 四 / 六更新,
原價¥99,限時¥68 本課程為圖文+音訊課程。可在極客時間APP/小程式/網站上永久觀看。
Kafka是LinkedIn開發並開源的一套分散式的高效能訊息引擎服務,後來被越來越多的公司應用在自己的系統中,可以說,Kafka是大資料時代資料管道技術的首選。在設計的時候,它就實現了高可靠、高吞吐、高可用和可伸縮,得益於這些特性,加上活躍的社群,Kafka成為了一個完備的分散式訊息引擎解決方案。
歷經多年發展,Kafka的功能和特性也在不斷迭代,如今的Kafka集訊息系統、儲存系統和流式處理平臺於一身,並作為連線著各種業務前臺和資料後臺的訊息中介軟體,線上上環境承擔了非常重要的作用。
但在Kafka的實際使用過程中,幾乎所有人都或多或少會遇到一些問題,比如:
棘手的線上問題難於定位和解決,怎麼辦?
在Kafka版本的演進過程中,各種新功能層出不窮,導致各種相容性問題接踵而至,怎麼辦?
當叢集規模擴充套件到一定程度後,所追求的高效能與有限的資源之間的矛盾又變得日益尖銳起來,怎麼辦?
如何順利填補這些“坑”,是擺在每個Kafka學習者面前最亟待解決的問題。
《Kafka核心技術與實戰》作者介紹
胡夕,目前就職於人人貸,任計算平臺部總監,是Apache Kafka社群活躍的程式碼貢獻者,著有《Apache Kafka實戰》一書,曾任職於IBM、搜狗和新浪微博等公司。胡夕對Kafka及其他開源流處理框架與技術有深刻理解,精通Kafka原理,主導過多個十億級\/天的訊息引擎業務系統的設計與搭建,具有豐富的線上環境定位和診斷調優經驗,曾給多家大型公司提供企業級Kafka培訓。
你好,我是胡夕,Apache Kafka 的一名程式碼貢獻者,目前在社群的 Patch 提交總數位列第 22 位,應該說算是國內比較活躍的貢獻者了。
在過去 5 年中,我經歷了 Kafka 從最初的 0.8 版本逐步演進到現在的 2.3 版本的完整過程,踩了很多坑也交了很多學費,慢慢地我梳理出了一個相對系統、完整的 Kafka 應用實戰指南,最終以“Kafka 核心技術與實戰”專欄的形式呈現給你,希望分享我對 Apache Kafka 的理解和實戰方面的經驗,幫你透徹理解 Kafka、更好地應用 Kafka。
你可能會有這樣的疑問,我為什麼要學習 Kafka 呢?要回答這個問題,我們不妨從更大的視角來審視它,先聊聊我對這幾年網際網路技術發展的理解吧。
網際網路蓬勃發展的這些年湧現出了很多令人眼花繚亂的新技術。以我個人的淺見,截止到 2019 年,當下網際網路行業最火的技術當屬 ABC 了,即所謂的 AI 人工智慧、BigData 大資料和 Cloud 雲端計算雲平臺。我個人對區塊鏈技術發展前景存疑,畢竟目前沒有看到特別好的落地應用場景,也許在未來幾年它會更令人刮目相看吧。
在這 ABC 當中,坦率說 A 和 C 是有點曲高和寡的,不是所有玩家都能入場。反觀 B 要顯得平民得多,幾乎所有公司都能參與進來。我曾經到過一個理髮廳,那裡的人都宣稱他們採用了大資料系統幫助客戶設計造型,足見 BigData 是很“下里巴人”的。
作為工程師或架構師,你在實際工作過程中一定參與到了很多大資料業務系統的構建。由於這些系統都是為公司業務服務的,所以通常來說它們僅僅是執行一些常規的業務邏輯,因此它們不能算是計算密集型應用,相反更應該是資料密集型的。
對於資料密集型應用來說,如何應對資料量激增、資料複雜度增加以及資料變化速率變快,是彰顯大資料工程師、架構師功力的最有效表徵。我們欣喜地發現 Kafka 在幫助你應對這些問題方面能起到非常好的效果。就拿資料量激增來說,Kafka 能夠有效隔離上下游業務,將上游突增的流量快取起來,以平滑的方式傳導到下游子系統中,避免了流量的不規則衝擊。由此可見,如果你是一名大資料從業人員,熟練掌握 Kafka 是非常必要的一項技能。
剛剛所舉的例子僅僅是 Kafka 助力業務的一個場景罷了。事實上,Kafka 有著非常廣闊的應用場景。不謙虛地說,目前 Apache Kafka 被認為是整個訊息引擎領域的執牛耳者,僅憑這一點就值得我們好好學習一下它。另外,從學習技術的角度而言,Kafka 也是很有亮點的。我們僅需要學習一套框架就能在實際業務系統中實現訊息引擎應用、應用程式整合、分散式儲存構建,甚至是流處理應用的開發與部署,聽起來還是很超值的吧。
不僅如此,再給你看一個資料。援引美國 2019 年 Dice 技術薪資報告中的資料,在 10 大薪資最高的技術技能中,掌握 Kafka 以平均每年 12.8 萬美元排名第二!排名第一位的是 13.2 萬美元 / 年的 Go 語言。好吧,希望你看到這個之後不會立即關閉我的專欄然後轉頭直奔隔壁的 Go 語言專欄。雖然這是美國人才市場的資料,但是我們有理由相信在國內 Kafka 的行情也是水漲船高。2019 年兩會上再一次提到了要深化大資料、人工智慧等研發應用,而 Kafka 無論是作為訊息引擎還是實時流處理平臺,都能在大資料工程領域發揮重要的作用。
總之 Kafka 是個利器,值得一試!既然知道了為什麼要學 Kafka,那我們就要行動起來,把它學透,而學透 Kafka 有什麼路徑嗎?
一旦確定了要使用的客戶端,馬上去官網上學習一下程式碼示例,如果能夠正確編譯和執行這些樣例,你就能輕鬆地駕馭客戶端了。
下一步你可以嘗試修改樣例程式碼嘗試去理解並使用其他的 API,之後觀測你修改的結果。如果這些都沒有難倒你,你可以自己編寫一個小型專案來驗證下學習成果,然後就是改善和提升客戶端的可靠性和效能了。到了這一步,你可以熟讀一遍 Kafka 官網文件,確保你理解了那些可能影響可靠性和效能的引數。
最後是學習 Kafka 的高階功能,比如流處理應用開發。流處理 API 不僅能夠生產和消費訊息,還能執行高階的流式處理操作,比如時間視窗聚合、流處理連線等。
如果你是系統管理員或運維工程師,那麼相應的學習目標應該是學習搭建及管理 Kafka 線上環境。如何根據實際業務需求評估、搭建生產線上環境將是你主要的學習目標。另外對生產環境的監控也是重中之重的工作,Kafka 提供了超多的 JMX 監控指標,你可以選擇任意你熟知的框架進行監控。有了監控資料,作為系統運維管理員的你,勢必要觀測真實業務負載下的 Kafka 叢集表現。之後如何利用已有的監控指標來找出系統瓶頸,然後提升整個系統的吞吐量,這也是最能體現你工作價值的地方。
在明確了自己要學什麼以及怎麼學之後,你現在會不會有一種感慨:原來我要學習這麼多東西呀!不用擔心,剛剛我提到的所有內容都會在專欄中被覆蓋到。
《Kafka核心技術與實戰》專欄介紹
專欄分為六部分,共42講
第一部分,Kafka入門。作為正式學習前的熱身,將介紹訊息引擎這類系統的原理和用途,以及作為優秀的訊息引擎代表,Kafka是如何“脫穎而出”的。
第二部分,Kafka的基本使用。將重點探討Kafka如何用於生產環境,特別是線上環境的方案該如何制定。
第三部分,客戶端實踐及原理剖析。將帶你學習Kafka客戶端的方方面面,既有生產者的實操講解,也有消費者的原理剖析,是專欄的重點內容。
第四部分,深入Kafka核心。將著重介紹Kafka最核心的設計原理,包括Controller的設計機制、請求處理的全流程等。
第五部分,管理與監控。這部分涵蓋Kafka運維與監控的內容,將討論如何高效運維Kafka叢集,並分享有效監控Kafka的實戰經驗。
第六部分,高階Kafka應用之流處理。最後這一部分將會介紹Kafka流處理元件Kafka Streams的實戰應用,並帶你從頭開發一個demo專案。
《Kafka核心技術與實戰》課程目錄
開篇詞I為什麼要學習Kafka?
Kafka入門
- 訊息引擎系統ABC
- —篇文章帯你快速搞定Kafka術語
- ApacheKafka真的只是訊息引擎系統嗎?
- 我應該如何選擇Kafka版本?
- 聊聊Kafka的版本號
Kafka的基本使用
- Kafka線上叢集部署方案怎麼做?
- 最最最重要的叢集引數配置(上)
- 最最最重要的叢集引數配置(下)
客戶端實踐及原理剖析
- 生產者訊息分割槽機制原理剖析
- 生產者壓縮演算法面面觀
- 無訊息丟失配置怎麼實現?
- 客戶端都有哪些不常見但是很高階的功能?
- Java生產者是如何管理TCP連線的?
- 冪等生產者和事務生產者是一回事嗎?
- 消費者組到底是什麼?
- 揭開神祕的“位移主題”面紗
- 消費者組重平衡能避免嗎?
- Kafka中位移提交那些事兒
- CommitFailedException 異常怎麼處理?
- 多執行緒開發消費者例項
- Java消費者是如何管理TCP連線的?
- 消費者組消費進度監控都怎麼實現?
深入Kafka核心
- Kafka備份機制詳解
- 請求是怎麼被處理的?
- 消費者組重平衡全流程解析
- 你一定不能錯過的Kafka控制器
- 關於高水位和Leader Epoch的討論
管理與監控
- 主題管理知多少?
- Kafka動態配置瞭解下?
- 怎麼重設消費者組位移?
- 常見工具指令碼大彙總
- KafkaAdminClient: Kafka的運維利器
- Kafka認證機制用哪家?
- 雲環境下的授權該怎麼做?
- 跨叢集備份解決方案MirrorMaker
- 你應該怎麼監控Kafka?
- 主流監控框架你知道多少?
- 調優Kafka你做到了嗎?
- 從0搭建基於Kafka的企業級實時日誌流處理平臺
高階Kafka應用之流處理
- Kafka Streams與其他流處理平臺的差異在哪?
- Kafka Streams DSL 開發例項
- Kafka Streams在金融領域的應用
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***