kafka學習(一)

kafka是用於構建實時數據管道和流應用程序。具有橫向擴展,容錯,wicked fast(變態快)等優點。

什麼是Kafka?

Apache kafka是消息中間件的一種,然而消息中間件又是什麼呢?

什麼是消息中間件?

舉個例子,生產者消費者,生產者生產雞蛋,消費者消費雞蛋,生產者生產一個雞蛋,消費者就消費一個雞蛋,假設消費者消費雞蛋的時候噎住了(系統宕機了),生產者還在生產雞蛋,那新生產的雞蛋就丟失了。再比如生產者很強勁(大交易量的情況),生產者1秒鐘生產100個雞蛋,消費者1秒鐘只能吃50個雞蛋,那要不了一會,消費者就吃不消了(消息堵塞,最終導致系統超時),消費者拒絕再吃了,”雞蛋“又丟失了,這個時候我們放個籃子在它們中間,生產出來的雞蛋都放到籃子裏,消費者去籃子裏拿雞蛋,這樣雞蛋就不會丟失了,都在籃子裏,而這個籃子就是”kafka“。
雞蛋其實就是“數據流”,系統之間的交互都是通過“數據流”來傳輸的(就是tcp、http什麼的),也稱爲報文,也叫“消息”。
消息隊列滿了,其實就是籃子滿了,”雞蛋“ 放不下了,那趕緊多放幾個籃子,其實就是kafka的擴容。
現在知道kafka是幹什麼的了吧,它就是那個"籃子"。


Kafka名詞解釋:

後面會看到一些關於kafka的名詞,比如Topic、Producer、Consumer、Broker,我這邊來簡單說明一下。

Producer:生產者,就是它來生產“雞蛋”的。

Consumer:消費者,生出的“雞蛋”它來消費。

Topic:你把它理解爲標籤,生產者每生產出來一個雞蛋就貼上一個標籤(topic),消費者可不是誰生產的“雞蛋”都吃的,這樣不同的生產者生產出來的“雞蛋”,消費者就可以選擇性的“吃”了。

Broker:就是籃子了。

上面只是屬於業務的角度,如果從技術角度,topic標籤實際就是隊列,生產者把所有“雞蛋(消息)”都放到對應的隊列裏了,消費者到指定的隊列裏取。









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章