1. 程式人生 > >大資料技術之Kafka是什麼

大資料技術之Kafka是什麼

Kafka是一種高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者規模的網站中的所有動作流資料。

這種動作(網頁瀏覽,搜尋和其他使用者的行動)是在現代網路上的許多社會功能的一個關鍵因素。
這些資料通常是由於吞吐量的要求而通過處理日誌和日誌聚合來解決。 對於像Hadoop的一樣的日誌資料和離線分析系統,但又要求實時處理的限制,
這是一個可行的解決方案。
Kafka的目的是通過Hadoop的並行載入機制來統一線上和離線的訊息處理,也是為了通過叢集機來提供實時的消費。


1 Kafka相關術語介紹

Kafka 是一種高吞吐量 的分散式釋出訂閱訊息系統,有如下特性:

    通過O(1)的磁碟資料結構提供訊息的持久化,這種結構對於即使數以TB的訊息儲存也能夠保持長時間的穩定效能。
    高吞吐量[2]  :即使是非常普通的硬體Kafka也可以支援每秒數百萬[2]  的訊息。
    支援通過Kafka伺服器和消費機叢集來分割槽訊息。
    支援Hadoop並行資料載入。

Kafka相關術語介紹

Broker
    Kafka叢集包含一個或多個伺服器,這種伺服器被稱為broker[5] 

Topic

    每條釋出到Kafka叢集的訊息都有一個類別,這個類別被稱為Topic。(物理上不同Topic的訊息分開儲存,邏輯上一個Topic的訊息雖然保存於一個或多個broker上但使用者只需指定訊息的Topic即可生產或消費資料而不必關心資料存於何處) 

Partition

    Partition是物理上的概念,每個Topic包含一個或多個Partition.

Producer

    負責釋出訊息到Kafka broker

Consumer

    訊息消費者,向Kafka broker讀取訊息的客戶端。
Consumer Group
    每個Consumer屬於一個特定的Consumer Group(可為每個Consumer指定group name,若不指定group name則屬於預設的group)。