必威电竞|足球世界杯竞猜平台

Kafka
來源:互聯(lián)網(wǎng)

Kafka是一個由apache軟件基金會開發(fā)、Scala和Java編寫的開源流處理平臺。該項(xiàng)目旨在提供一個高吞吐、低延遲的平臺,用于處理實(shí)時數(shù)據(jù)。Kafka是一種分布式發(fā)布訂閱消息系統(tǒng),可以處理現(xiàn)代網(wǎng)絡(luò)上的大量社會功能,如網(wǎng)頁瀏覽、搜索等,這些數(shù)據(jù)對于現(xiàn)代網(wǎng)絡(luò)至關(guān)重要。Kafka旨在通過Hadoop的并行加載機(jī)制,統(tǒng)一線上和離線的消息處理,并為集群提供實(shí)時消息。

Kafka通過連接到外部系統(tǒng)(用于數(shù)據(jù)導(dǎo)入/導(dǎo)出),并通過Kafka Connect提供。此外,Kafka還提供了一個名為Kafka Streams的Java流式處理庫。Kafka的設(shè)計(jì)受到事務(wù)日志的影響,其持久化層本質(zhì)上是一個“大規(guī)模發(fā)布/訂閱消息隊(duì)列”,這使得Kafka成為企業(yè)級基礎(chǔ)設(shè)施,用于處理流式數(shù)據(jù)非常有價(jià)值。

名字由來

kafka的架構(gòu)師jay kreps對于kafka的名稱由來是這樣講的,由于jay kreps非常喜歡franz kafka,并且覺得kafka這個名字很酷,因此取了個和消息傳遞系統(tǒng)完全不相干的名稱kafka,該名字并沒有特別的含義。

kafka的誕生,是為了解決Linkedin的數(shù)據(jù)管道問題,起初linkedin采用了ActiveMQ來進(jìn)行數(shù)據(jù)交換,大約是在2010年前后,那時的ActiveMQ還遠(yuǎn)遠(yuǎn)無法滿足linkedin對數(shù)據(jù)傳遞系統(tǒng)的要求,經(jīng)常由于各種缺陷而導(dǎo)致消息阻塞或者服務(wù)無法正常訪問,為了能夠解決這個問題,linkedin決定研發(fā)自己的消息傳遞系統(tǒng),當(dāng)時linkedin的首席架構(gòu)師jay kreps便開始組織團(tuán)隊(duì)進(jìn)行消息傳遞系統(tǒng)的研發(fā)。

特性

Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),有如下特性:

??通過O(1)的磁盤數(shù)據(jù)結(jié)構(gòu)提供消息的持久化,這種結(jié)構(gòu)對于即使數(shù)以TB的消息存儲也能夠保持長時間的穩(wěn)定性能。

??高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒數(shù)百萬的消息。

??支持通過Kafka服務(wù)器和消費(fèi)機(jī)集群來分區(qū)消息。

??支持Hadoop并行數(shù)據(jù)加載。

Kafka通過官網(wǎng)發(fā)布了最新版本2.0.0。

術(shù)語介紹

??掮客

??Kafka集群包含一個或多個服務(wù)器,這種服務(wù)器被稱為broker。

??Topic

??每條發(fā)布到Kafka集群的消息都有一個類別,這個類別被稱為Topic。(物理上不同Topic的消息分開存儲,邏輯上一個Topic的消息雖然保存于一個或多個broker上但用戶只需指定消息的Topic即可生產(chǎn)或消費(fèi)數(shù)據(jù)而不必關(guān)心數(shù)據(jù)存于何處)

??Partition

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

??Producer

??負(fù)責(zé)發(fā)布消息到Kafka 掮客

??消費(fèi)者

??消息消費(fèi)者,向Kafka broker讀取消息的客戶端。

??Consumer 基團(tuán)

??每個Consumer屬于一個特定的Consumer Group(可為每個Consumer指定group 人名,若不指定group name則屬于默認(rèn)的group)。

參考資料 >

Apache Kafka官網(wǎng).Apache Kafka官網(wǎng).2018-01-05

Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three Cheap Machines).LinkedIn.2015-11-20

生活家百科家居網(wǎng)