- Apache Kafka 教程
- Apache Kafka - 首頁
- Apache Kafka - 簡介
- Apache Kafka - 基礎知識
- Apache Kafka - 叢集架構
- Apache Kafka - 工作流程
- Apache Kafka - 安裝步驟
- Apache Kafka - 基本操作
- 簡單生產者示例
- 消費者組示例
- 與 Storm 整合
- 與 Spark 整合
- 即時應用(Twitter)
- Apache Kafka - 工具
- Apache Kafka - 應用
- Apache Kafka 有用資源
- Apache Kafka - 快速指南
- Apache Kafka - 有用資源
- Apache Kafka - 討論
Apache Kafka - 簡介
在大資料中,使用了海量的資料。關於資料,我們有兩個主要挑戰。第一個挑戰是如何收集大量資料,第二個挑戰是如何分析收集到的資料。為了克服這些挑戰,您必須需要一個訊息系統。
Kafka 旨在用於分散式高吞吐量系統。Kafka 傾向於作為更傳統的訊息代理的替代品發揮出色作用。與其他訊息系統相比,Kafka 具有更高的吞吐量、內建分割槽、複製和固有的容錯能力,這使其成為大型訊息處理應用程式的理想選擇。
什麼是訊息系統?
訊息系統負責將資料從一個應用程式傳輸到另一個應用程式,以便應用程式可以專注於資料,而無需擔心如何共享它。分散式訊息傳遞基於可靠訊息佇列的概念。訊息在客戶端應用程式和訊息系統之間非同步排隊。兩種型別的訊息模式可用 - 一種是點對點,另一種是釋出-訂閱(pub-sub)訊息系統。大多數訊息模式遵循pub-sub。
點對點訊息系統
在點對點系統中,訊息會持久儲存在佇列中。一個或多個消費者可以消費佇列中的訊息,但特定訊息最多隻能被一個消費者消費。一旦消費者讀取佇列中的訊息,它就會從該佇列中消失。此係統的典型示例是訂單處理系統,其中每個訂單將由一個訂單處理器處理,但多個訂單處理器也可以同時工作。下圖描繪了結構。
釋出-訂閱訊息系統
在釋出-訂閱系統中,訊息會持久儲存在主題中。與點對點系統不同,消費者可以訂閱一個或多個主題並消費該主題中的所有訊息。在釋出-訂閱系統中,訊息生產者稱為釋出者,訊息消費者稱為訂閱者。現實生活中的例子是衛星電視,它釋出不同的頻道,如體育、電影、音樂等,任何人都可以訂閱他們自己的一組頻道並在其訂閱的頻道可用時獲取它們。
什麼是 Kafka?
Apache Kafka 是一個分散式釋出-訂閱訊息系統和一個強大的佇列,可以處理大量資料,並使您能夠將訊息從一個端點傳遞到另一個端點。Kafka 適用於離線和線上訊息消費。Kafka 訊息持久儲存在磁碟上並在叢集內複製以防止資料丟失。Kafka 建立在 ZooKeeper 同步服務之上。它與 Apache Storm 和 Spark 整合得非常好,用於即時流資料分析。
優勢
以下是 Kafka 的一些優勢 -
可靠性 - Kafka 是分散式、分割槽、複製和容錯的。
可擴充套件性 - Kafka 訊息系統可以輕鬆擴充套件而不會出現停機時間。
永續性 - Kafka 使用
分散式提交日誌
,這意味著訊息儘快持久儲存在磁碟上,因此它具有永續性。效能 - Kafka 對於釋出和訂閱訊息都具有高吞吐量。即使儲存了大量 TB 的訊息,它也能保持穩定的效能。
Kafka 非常快,並保證零停機時間和零資料丟失。
用例
Kafka 可用於許多用例。其中一些列在下面 -
指標 - Kafka 通常用於操作監控資料。這涉及聚合來自分散式應用程式的統計資訊以生成集中化的操作資料饋送。
日誌聚合解決方案 - Kafka 可用於整個組織,以從多個服務收集日誌並以標準格式將其提供給多個消費者。
流處理 - Storm 和 Spark Streaming 等流行框架從主題讀取資料,處理它,並將處理後的資料寫入新主題,使用者和應用程式可以在其中獲取它。Kafka 的強大永續性在流處理的上下文中也非常有用。
對 Kafka 的需求
Kafka 是一個統一的平臺,用於處理所有即時資料饋送。Kafka 支援低延遲訊息傳遞,並保證在機器故障時容錯。它能夠處理大量不同的消費者。Kafka 非常快,每秒執行 200 萬次寫入。Kafka 將所有資料持久儲存到磁碟,這基本上意味著所有寫入都進入作業系統的頁面快取(RAM)。這使得從頁面快取到網路套接字傳輸資料非常高效。