kafka系列教程01 如何學習kafka

2021-09-24 16:31:47 字數 1644 閱讀 7122

資料流,如訊息傳遞系統               高效並實時                   資料流安全地在分布式集群中複製儲存

kafka是用於構建實時資料管道和流應用程式。具有橫向擴充套件,容錯,wicked fast(**快)等優點,並已在成千上萬家公司執行。

apache kafka是訊息中介軟體的一種,我發現很多人不知道訊息中介軟體是什麼,在開始學習之前,我這邊就先簡單的解釋一下什麼是訊息中介軟體,只是粗略的講解,目前kafka已經可以做更多的事情。

舉個例子,生產者消費者,生產者生產雞蛋,消費者消費雞蛋,生產者生產乙個雞蛋,消費者就消費乙個雞蛋,假設消費者消費雞蛋的時候噎住了(系統宕機了),生產者還在生產雞蛋,那新生產的雞蛋就丟失了。再比如生產者很強勁(大交易量的情況),生產者1秒鐘生產100個雞蛋,消費者1秒鐘只能吃50個雞蛋,那要不了一會,消費者就吃不消了(訊息堵塞,最終導致系統超時),消費者拒絕再吃了,」雞蛋「又丟失了,這個時候我們放個籃子在它們中間,生產出來的雞蛋都放到籃子裡,消費者去籃子裡拿雞蛋,這樣雞蛋就不會丟失了,都在籃子裡,而這個籃子就是」kafka「。

雞蛋其實就是「資料流」,系統之間的互動都是通過「資料流」來傳輸的(就是tcp、https什麼的),也稱為報文,也叫「訊息」。

訊息佇列滿了,其實就是籃子滿了,」雞蛋「 放不下了,那趕緊多放幾個籃子,其實就是kafka的擴容。

各位現在知道kafka是幹什麼的了吧,它就是那個"籃子"。

後面大家會看到一些關於kafka的名詞,比如topic、producer、consumer、broker,我這邊來簡單說明一下。

大家一定要學會抽象的去思考,上面只是屬於業務的角度,如果從技術角度,topic標籤實際就是佇列,生產者把所有「雞蛋(訊息)」都放到對應的佇列裡了,消費者到指定的佇列裡取。

最近面試發現,很多人用過kafka,但是沒人了解原理,我們可是很注重原理的(ps:要不然怎麼知道你真的會呢)。

這些問題在下面的文章中都可以找到答案,kafka之所以有這麼火熱,建議各位一定要看一下。

還是那句話,學習任何技術,跟學騎自行車一樣,不要一開始只關注它的具體細節是什麼。先學著怎麼騎,騎著騎著就了解大致的原理,這個時候在去看它的原理,會很輕鬆。

章節與kafka官網對應一致

第一章:開始

第二章:api

第三章:kafka的配置

第四章:kafka如何設計的

第五章:kafka的實現

第六章:kafka的常用操作,如擴容,刪除和增加topic。

第七章:硬體和作業系統

第八章:kafka監控

第九章:安全

第十章:kafka connect

第十一章:kafka 流

第十二章:原始碼

第十三章:筆記(kafka命令大全,見【kafka系列教程02】)

src的是原始檔,如:

source download: kafka-2.2.1-src.tgz (asc, sha512)
你應該下的是:

scala 2.12  - kafka_2.12-2.2.1.tgz (asc, sha512)

kafka系列教程03 kafka命令大全

建立主題 4個分割槽,2個副本 bin kafka topics.sh create zookeeper localhost 2181 replication factor 2 partitions 4 topic test 查詢集群描述 bin kafka topics.sh describe z...

學習kafka教程(一)

簡介 kafka是用於構建實時資料管道和流應用程式。具有橫向擴充套件,容錯,wicked fast 快 等優點,並已在成千上萬家公司執行。目標相關概念 producer 生產者,就是它來生產 叉燒包 的飯堂阿姨。consumer 消費者,生產出來的 叉燒包 它來消費。topic 你把它理解為標籤,生...

Kafka的學習筆記01

1 kafka架構 producer 訊息生產者,也就是向broker傳送訊息的客戶端 consumer 訊息消費者,向broker消費資料的客戶端 consumer group gc 消費者組,也就是由多個消費者組成的。消費者組內的每個消費者負責消費不同分割槽的資料,乙個分割槽只能由乙個組內的消費...