KAFKA的簡單瞭解--大資料紀錄片第九記
Kafka是一個分散式釋出-訂閱訊息系統和一個強大的佇列,可以處理大量資料,使得一個訊息可以從一個端點傳遞到另一個端點。Kafka非常適合離線和線上訊息消費。Kafka將資料儲存在磁碟上,並在叢集內複製以防止資料丟失。Kafka構建在zookeeper的同步服務之上,它和storm和spark很好地整合,用於實時流式資料分析。今天就對Kafka的基礎架構做一個瞭解。
介紹一下架構中的主要成員以及其作用:
1、Topic(主題):屬於特定類別訊息流稱為主題,資料儲存在主題中
2、Partition(分割槽):主題被拆分成分割槽,對於每個主題,Kafka儲存一個分割槽的資料。每個這樣的分割槽包含不可變有序序列的訊息。分割槽被實現為具有相同大小的一組分段檔案。主題可能有很多分割槽,因此它可以處理任意數量的資料
3、Partiton Offset(分割槽偏移):每個分割槽訊息具有稱為“offset”的唯一序列標識
4、Replicas of Partition(分割槽備份):作為備份,從不讀寫資料,只是防止資料丟失
5、Brokers(經紀人):代理是負責維護髮布資料的簡單系統。每個代理中的每個主題可以具有零個或多個分割槽。
1、假設在一個主題上有N個分割槽和N個經紀人,每個經紀人將有一個分割槽
2、假設在一個主題上有N個分割槽和N+M個經紀人,前N個經紀人一人一個分割槽,剩下的M個經紀人將不會分配到分割槽
3、假設在一個主題上有N個分割槽和小於N個經紀人,每個經紀人將在它們之間具有一個或多個分割槽共享。由於代理之間的負載分佈不相等,不推薦此方案
6、Kafka Cluster(Kafka叢集):Kafka有多個經紀人被稱為Kafka叢集
7、Producer(生產者):生產者是傳送給一個或多個生產者,生產者向Kafka經紀人傳送資料,每當生產者將訊息傳送個經紀人時,經紀人只需將訊息附加到最後一個段檔案上。實際上,該訊息將被附加到分割槽。生產者還可以向他們選擇分割槽傳送訊息
8、Consumer(消費者):消費者從經紀人處讀取訊息。消費者訂閱一個或多個主題,並通過從經紀人中提取資料來使用已釋出的訊息
9、Leader(領導者):領導者是負責給定分割槽的所有讀取和寫入的節點。每個經紀人(原文寫的是分割槽,但是我覺得應該是經紀人)都有一個伺服器當領導者
10、Follower(跟隨者):跟隨領導者指令的節點稱為追隨者,如果領導者崩潰,一個追隨者將自動成為新的領導者。跟隨者最為正常的消費者,拉取訊息並更新自己的資料儲存