簡單說明kafka

2021-09-26 14:44:14 字數 1057 閱讀 6590

什麼是kafka:

kafka是用於構建實時資料管道和流應用程式。具有橫向擴充套件,容錯,wicked fast(**快)等優點

簡單說明什麼是kafka

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

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

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

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

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

kafka名詞解釋

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

producer:生產者,就是它來生產「雞蛋」的。

consumer:消費者,生出的「雞蛋」它來消費。

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

broker:就是籃子了。

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

FormatMessage簡單說明

常用引數簡介.formatmessage format message from system format message allocate buffer,null,lval,null,lptstr hlocal,0,null 第乙個引數是標誌,告訴這個formatmessage函式,我想要的特點...

Subversion 簡單說明

subversion 簡單說明 checkout 從源 管理伺服器取出 commit 提交更新的 到源 管理伺服器。update 從源 管理伺服器獲取 的最新更新。export 從源 管理伺服器匯出 匯出的 將脫離源 管理。revert 將當前資料恢復到最近與伺服器同步的版本,即放棄自己的所有未提交...

std deque簡單說明

本文 http blog.chinaunix.net u2 86575 showart 1734758.html std deque是乙個高效的雙端佇列,可以高效地進行插入和刪除操作。以sgi c stl為例 deque的基本結構是 有乙個map map中的元素是乙個記錄了乙個大小為512位元組的線...