更新時間:2020-05-29 來源:黑馬程序員 瀏覽量:
Kafka是一個高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它在實時計算系統(tǒng)中有著非常強大的功能。通常情況下,使用Kafka構(gòu)建系統(tǒng)或應(yīng)用程序之間的數(shù)據(jù)管道,用來轉(zhuǎn)換或響應(yīng)實時數(shù)據(jù),使數(shù)據(jù)能夠及時地進行業(yè)務(wù)計算,得出相應(yīng)結(jié)果。
Kafka是由Apache軟件基金會開發(fā)的一個開源流處理平臺,它使用Scala和Java語言編寫,是一個基于Zookeeper系統(tǒng)的分布式發(fā)布訂閱消息系統(tǒng),該項目的設(shè)計初衷是為實時數(shù)據(jù)提供一個統(tǒng)一、高通量、低等待的消息傳遞平臺。在0.10版本之前,Kafka只是一個消息系統(tǒng),主要用來解決應(yīng)用解耦、異步消息等問題,在0.10版本之后,Kafka推出了連接器與流處理的功能,使其逐漸成為一個流式數(shù)據(jù)平臺。
ApacheKafka作為分布式消息系統(tǒng),可以處理大量的數(shù)據(jù),并能夠?qū)⑾囊粋€端點傳遞到另外一個端點。Kafka系統(tǒng)在大數(shù)據(jù)領(lǐng)域中的應(yīng)用非常普遍,它能夠在離線和實時兩種大數(shù)據(jù)計算架構(gòu)中處理數(shù)據(jù),這得益于Kafka的眾多優(yōu)點,其優(yōu)點具體如下。
(1)解耦。Kafka具備消息系統(tǒng)的優(yōu)點,只要生產(chǎn)者和消費者數(shù)據(jù)兩端遵循接口約束,就可以自行擴展或修改數(shù)據(jù)處理的業(yè)務(wù)過程。
(2)高吞吐量、低延遲。即使在非常廉價的機器上,Kafka也能做到每秒處理幾十萬條消息,而它的延遲最低只有幾毫秒。
(3)持久性。Kafka可以將消息直接持久化在普通磁盤上,且磁盤讀寫性能優(yōu)異。
(4)擴展性。Kafka集群支持熱擴展,Kaka集群啟動運行后,用戶可以直接向集群添。
(5)容錯性。Kafka會將數(shù)據(jù)備份到多臺服務(wù)器節(jié)點中,即使Kafka集群中的某一臺加新的Kafka服務(wù)節(jié)點宕機,也不會影響整個系統(tǒng)的功能。
(6)支持多種客戶端語言。Kafka支持Java、.NET、PHP、Python等多種語言。
在大數(shù)據(jù)計算系統(tǒng)的開發(fā)場景中,若需要對接外部數(shù)據(jù)源時,就可以使用Kafka系統(tǒng),如讀者熟悉的日志收集系統(tǒng)和消息系統(tǒng),Kafka讀取日志系統(tǒng)中的數(shù)據(jù),每得到一條數(shù)據(jù),就可以及時地處理一條數(shù)據(jù),這就是常見的流式計算框架。在流式計算框架中,Kafka一般用來緩存數(shù)據(jù),它與Apache旗下的Spark、Storm等計算框架有著非常好的集成,這些計算框架可以接收Kafka中的緩存數(shù)據(jù)并進行計算,實時得出計算結(jié)果。
Kafka使用消費組(ConsumerGroup)的概念統(tǒng)一了點對點消息傳遞模式和發(fā)布訂閱消息傳遞模式,當Kafka使用點對點模式時,它可以將待處理的工作任務(wù)平均分配給消費組中的消費者成員;當使用發(fā)布訂閱模式時,它可以將消息廣播給多個消費組。Kafka采用多個消費組結(jié)合多個消費者,既可以擴展消息處理的能力,也允許消息被多個消費組訂閱。
猜你喜歡:
大數(shù)據(jù)系統(tǒng)中的消息傳遞模式【大數(shù)據(jù)培訓(xùn)】
2020-05-29大數(shù)據(jù)培訓(xùn)之flink從入門到精通視頻教程【黑馬程序員】
2020-05-14Hadoop與Spark的區(qū)別有哪些?【大數(shù)據(jù)培訓(xùn)】
2020-04-24Spark計算框架在處理數(shù)據(jù)時有什么優(yōu)勢?【大數(shù)據(jù)培訓(xùn)】
2020-04-24Spark發(fā)展史:讓你了解是什么Spark?
2020-04-23機器學(xué)習可以應(yīng)用于哪些領(lǐng)域?【大數(shù)據(jù)培訓(xùn)】
2020-04-23