什麼是Kafka
Kafka是一款分布式消息釋出和訂閱系統,它的特點是高性能、高吞吐量。
最早設計的目的是作為LinkedIn的活動流和營運資料的處理管道。這些資料主要是用來對使用者做使用者畫像分析以及伺服器性能資料的一些監控
是以kafka一開始設計的目标就是作為一個分布式、高吞吐量的消息系統,是以适合運用在大資料傳輸場景。
Kafka是用來建構實時的管道和流式的應用,它可以水準的擴充,而且還有容錯機制,性能很高.
Kafka是一個分布式的資料流式傳輸平台。
在流式計算中,Kafka一般用來緩存資料,Spark通過消費Kafka的資料進行計算。
1)Apache Kafka是一個開源消息系統,由Scala寫成。是由Apache軟體基金會開發的一個開源消息系統項目。
2)Kafka最初是由LinkedIn公司開發,并于2011年初開源。2012年10月從Apache Incubator畢業。該項目的目标是為處理實時資料提供一個統一、高吞吐量,能達到每秒發百分級别的消息、低等待(延遲很小,速度很快,就是我生産者前一秒剛發送消息,消費者後一秒就收到消息了)的平台。
3)Kafka是一個分布式消息隊列(分布式意味着可以在叢集裡面搭建)。Kafka對消息儲存時根據Topic進行歸類,發送消息者稱為Producer,消息接受者稱為Consumer,此外kafka叢集有多個kafka執行個體組成,每個執行個體(server)稱為broker。
4)無論是kafka叢集,還是consumer都依賴于zookeeper叢集儲存一些meta資訊,來保證系統可用性。
Kafka的特點
作為一個資料流式傳輸平台,kafka有以下三大特點:
類似于消息隊列和商業的消息系統,kafka提供對流式資料的釋出和訂閱
kafka提供一種持久的容錯(Kafka提供副本數來解決容錯問題,防止因為磁盤壞了,資料丢了)的方式存儲流式資料
kafka擁有良好的性能,可以及時地處理流式資料