互聯網蓬勃發展的這些年涌現出了不少使人眼花繚亂的新技術。以我我的的淺見,截止到2019 年,當下互聯網行業最火的技術當屬 ABC 了,即所謂的 AI 人工智能、BigData 大數據和 Cloud 雲計算雲平臺。編程
做爲工程師或架構師,你在實際工做過程當中必定參與到了不少大數據業務系統的構建。因爲這些系統都是爲公司業務服務的,因此一般來講它們僅僅是執行一些常規的業務邏輯,所以它們不能算是計算密集型應用,相反更應該是數據密集型的。緩存
對於數據密集型應用來講,如何應對數據量激增、數據複雜度增長以及數據變化速率變快,是彰顯大數據工程師、架構師功力的最有效表徵。架構
咱們欣喜地發現 Kafka 在幫助你應對這些問題方面能起到很是好的效果。就拿數據量激增來講,Kafka 可以有效隔離上下游業務,將上游突增的流量緩存起來,以平滑的方式傳導到下游子系統中,避免了流量的不規則衝
擊。
因而可知,若是你是一名大數據從業人員,熟練掌握 Kafka 是很是必要的一項技能。剛剛所舉的例子僅僅是 Kafka 助力業務的一個場景罷了。事實上,Kafka 有着很是廣闊的應用場景。不謙虛地說,目前 Apache Kafka 被認爲是整個消息引擎領域的執牛耳者,僅憑這一點就值得咱們好好學習一下它。另外,從學習技術的角度而言,Kafka 也是頗有亮點的。框架
咱們僅須要學習一套框架就能在實際業務系統中實現消息引擎應用、應用程序集成、分佈式存儲構建,甚至是流處理應用的開發與部署,聽起來仍是很超值的吧。運維
不只如此,再給你看一個數據。援引美國 2019 年 Dice 技術薪資報告中的數據,在 10 大薪資最高的技術技能中,掌握 Kafka 以平均每一年 12.8 萬美圓排名第二!排名第一位的是13.2 萬美圓 / 年的 Go 語言。編程語言
2019 年兩會上再一次提到了要深化大數據、人工智能等研發應用,而 Kafka 不管是做爲消息引擎仍是實時流處理平臺,都能在大數據工程領域發揮重要的做用。分佈式
總之 Kafka 是個利器,值得一試!既然知道了爲何要學 Kafka,那咱們就要行動起來,把它學透,而學透 Kafka 有什麼路徑嗎?性能
若是你是一名軟件開發工程師的話,掌握 Kafka 的第一步就是要根據你掌握的編程語言去尋找對應的 Kafka 客戶端。當前 Kafka 最重要的兩大客戶端是 Java 客戶端和 libkafka 客戶端,它們更新和維護的速度很快,很是適合你持續花時間投入。一旦肯定了要使用的客戶端,立刻去官網上學習一下代碼示例,若是可以正確編譯和運行這些樣例,你就能輕鬆地駕馭客戶端了。學習
下一步你能夠嘗試修改樣例代碼嘗試去理解並使用其餘的 API,以後觀測你修改的結果。若是這些都沒有難倒你,你能夠本身編寫一個小型項目來驗證下學習成果,而後就是改善和提高客戶端的可靠性和性能了。到了這一步,你能夠熟讀一遍 Kafka 官網文檔,確保你理解了那些可能影響可靠性和性能的參數。大數據
最後是學習 Kafka 的高級功能,好比流處理應用開發。流處理 API 不只可以生產和消費消息,還能執行高級的流式處理操做,好比時間窗口聚合、流處理鏈接等。
若是你是系統管理員或運維工程師,那麼相應的學習目標應該是學習搭建及管理 Kafka 線上環境。如何根據實際業務需求評估、搭建生產線上環境將是你主要的學習目標。**
另外對生產環境的監控也是重中之重的工做,Kafka 提供了超多的 JMX 監控指標,你能夠選擇任意你熟知的框架進行監控。有了監控數據,做爲系統運維管理員的你,勢必要觀測真實業務負載下的 Kafka 集羣表現。以後如何利用已有的監控指標來找出系統瓶頸,而後提高整個系統的吞吐量,這也是最能體現你工做價值的地方。
下面是我特地爲專欄畫的一張思惟導圖,能夠幫你迅速瞭解這個專欄的知識結構體系是什麼
樣的。專欄大體從六個方面展開,包括 Kafka 入門、Kafka 的基本使用、客戶端詳解、Kafka 原理介紹、Kafka 運維與監控以及高級 Kafka 應用。
極客時間學習