資料流,如訊息傳遞系統 高效並實時 資料流安全地在分布式集群中複製儲存
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 消費者組,也就是由多個消費者組成的。消費者組內的每個消費者負責消費不同分割槽的資料,乙個分割槽只能由乙個組內的消費...