為什麼會有kafka訊息系統?小問題藏著大細節!

2022-01-10 18:16:21 字數 2377 閱讀 4948

前言:老劉今天寫這篇文章首先想對一些複製貼上的部落格表達不滿;其次是想用通俗易懂的話解釋訊息系統;最後歡迎各位英雄好漢、女中豪傑前來battle。

今天覆習kafka知識點的第乙個問題是:為什麼有訊息系統?可能有很多自學大資料開發的人都不怎麼注意這個問題,但老劉希望能夠用這個小問題來提醒自學大資料開發的人,對於每個問題形成自己的理解真的很重要,即使再小的問題,它都有很大的細節!

在這個問題上,某機構的資料是這樣回答的:

看到答案的我表情是這樣的!

原諒老劉是個木魚腦袋,明明問的是為什麼,可這個內容回答的是訊息系統有什麼用,並且對於每個用處的解釋,老劉覺得太專業了,實在不能用自己的理解把它們解發布來!

於是,老劉帶著疑問去搜了這個問題的相關答案,不查不知道,一查嚇一跳,絕大多數的人都是這樣的回答,內容和排版都差不多,基本都是複製貼上別人的內容。(抄別人的東西有意思嘛)

老劉現在不得不感慨,在網上找到乙個好的答案真的太難了,真正用自己的理解回答問題的人太難找了!

那這個小問題最後是如何解決的呢?

老劉在某天飯點突然一激靈,終於明白了為什麼和有什麼用這兩個其實是可以相互轉換的!

在這個靈感下,老劉結合網上大佬的內容,對為什麼會有kafka訊息系統給出了這樣的答案。

首先為什麼會有kafka訊息系統這個問題,要先回答為什麼會有訊息系統,因為kafka是訊息系統的乙個實現。

老劉舉例說明一下為什麼會有訊息系統,對訊息系統的用處進行形象的解釋。

這是第乙個例子:

在巧克力的生產過程中,研磨車間把可可豆變成可可粉,再人工傳輸到加熱車間變為巧克力醬,在人工搬到罐裝車間,通過巧克力模型,變為各種形狀的巧克力。但是呢,人工搬運有點慢,我們就引入了傳送帶,省掉人工搬運過程。

接著又發現問題,每個車間生產效率是不一樣的,研磨車間賊快,加熱車間慢,而罐裝車間也快。在這種情況下,研磨車間產生的東西太多了,加熱車間忙不過來,這個時候就可以設定乙個倉庫。

這個倉庫就相當於我們的訊息系統,俗稱訊息中介軟體,起到乙個緩衝的作用,可以做到削峰填谷。

也相當於送快遞,當快遞到了,我現在沒有時間來取,快遞員就把快遞放在附件的超市裡,等我有空了就去取。

以上就是訊息系統具有的緩衝、削峰填谷功能。

現在講述第二個例子:

傳統模式下,當使用者下單後,訂單系統需要通知庫存系統,其實就是呼叫庫存系統的介面。但是,當庫存系統出現故障,無法訪問的時候,訂單減庫存就是失敗,導致訂單失敗,這就是訂單系統和庫存系統耦合。

那我們怎麼辦呢?

優秀的開發人員引入了訊息系統,使用者下單後,訂單系統完成持久化處理,將訊息寫入訊息系統,返回使用者下單成功。然後庫存系統採用拉/推的方式,獲取下單資訊,庫存系統就會根據下單資訊,進行庫存操作。

通過這樣的方式,訂單系統就和庫存系統成功解耦,這就是訊息系統的解耦合功能。

由於某些機構的資料以及很多部落格的答案都比較具有專業性,老劉實在難以理解,無法用自己的話解發布來。

於是,老劉結合了很多例子對訊息系統的用處進行了形象的解釋,對為什麼會有訊息系統這個問題也有了大致的答案。對於這個小問題終於能有自己的理解了,不容易啊!

總結一下,對於為什麼會有訊息系統這個問題,我們可以有這樣的理解。

在實際開發過程中,常常有各種千奇百怪需求,突發情況也隨時可能發生,比如應用流量暴增、應用崩潰等,為了解決這些情況,優秀的開發人員實現各種訊息系統,比如rabbitmq、rocketmq、kafka,這些訊息系統基本都會有解耦、緩衝、削峰填谷等功能,通過這些功能可以幫助我們在日常開發過程中來應對這些問題。如果時間允許,可以在對每個功能舉例說明!

老劉以前寫部落格,純粹就是分享自學大資料開發的細節知識點,讓同樣是自學的夥伴查漏補缺。今天的部落格有多個目的,老劉寫了乙個列表如下:

提醒所有自學開發找工作的人,無論是看資料還是瀏覽別人的部落格內容,千萬不要照搬別人的內容,別人寫什麼,就去背什麼,這樣太危險了!

對於任何知識點,無論多麼簡單,它都有大大的細節,自己嘗試能能用自己的理解把那些專業的知識點翻譯為自己的話!

表達對眾多直接複製貼上的部落格表達不滿,用心寫、用自己的理解寫,不好嗎?

為什麼會有檔案系統

感謝作者無私分享 一 linux發展到現今,在fs目錄下我們可以看到形形色色的檔案系統,眼花繚亂的同時首先需要回答的問題是,為什麼會有檔案系統這個東西呢?我想如果能搞清楚這個問題,會幫助大家更好的理解檔案系統,那麼我就嘗試著來模擬一次檔案系統的演進過程,於是,我們來到了那一天,那天之前,人們還沒有檔...

訊息系統 Kafka

kafka學習了資料庫裡面的設計,在裡面設計了topic 主題 這個東西類似於關係型資料庫的表 此時我需要獲取中國移動的資料,那就直接監聽topica即可。topic和partition像是hbase裡的table和region的概念,table只是乙個邏輯上的概念,真正儲存資料的是region,這...

kafka訊息系統

kafka 1.kafka是一種分布式 基於發布 訂閱的訊息系統。2.常用mq mesage queue 訊息佇列 rabbitmq activemq 這個青奧用過哦 kafka 3.producer 負責發布訊息到kafkabroker kafka伺服器 broker 訊息伺服器topic 伺服器...