Kafka是由Apache軟件基金會開發的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分佈式發佈訂閱消息系統,它能夠處理消費者在網站中的全部動做流數據。 這種動做(網頁瀏覽,搜索和其餘用戶的行動)是在現代網絡上的許多社會功能的一個關鍵因素。 這些數據一般是因爲吞吐量的要求而經過處理日誌和日誌聚合來解決。 對於像Hadoop同樣的日誌數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是經過Hadoop的並行加載機制來統一線上和離線的消息處理,也是爲了經過集羣來提供實時的消服務器
1 名字的由來
2 kafka的誕生
3 特性
4 相關術語介紹網絡
============================== 1.名字的由來 ==============================
kafka的架構師jay kreps對於kafka的名稱由來是這樣講的,因爲jay kreps很是喜歡franz kafka,而且以爲kafka這個名字很酷,所以取了個和消息傳遞系統徹底不相干的名稱kafka,取名字是並無特別的含義。數據結構
============================== 2.kafka的誕生編輯 ==============================
kafka的誕生,是爲了解決linkedin的數據管道問題,期初linkedin採用了ActiveMQ來進行數據交換,大約是在2010年先後,那時的ActiveMQ還遠遠沒法知足linkedin對數據傳遞系統的要求,常常因爲各類缺陷而致使消息阻塞或者服務沒法正常訪問,爲了可以解決這個問題,linkedin決定研發本身的消息傳遞系統,當時linkedin的首席架構師jay kreps便開始組織團隊進行消息傳遞系統的研發;架構
============================== 3.特性編輯 ==============================
Kafka 是一種高吞吐量 的分佈式發佈訂閱消息系統,有以下特性:
經過O(1)的磁盤數據結構提供消息的持久化,這種結構對於即便數以TB的消息存儲也可以保持長時間的穩定性能。
高吞吐量 :即便是很是普通的硬件Kafka也能夠支持每秒數百萬的消息。
支持經過Kafka服務器和消費機集羣來分區消息。
支持Hadoop並行數據加載。
Kafka經過官網發佈了最新版本2.3.0分佈式
============================== 4.相關術語介紹 ==============================
Broker
Kafka集羣包含一個或多個服務器,這種服務器被稱爲broker
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)。oop
============================== 下期預告: ============================== 性能
下一篇博文將介紹 Win10 環境下 使用 Kafka 的環境配置,謝謝你們。網站