來源服務器
在技術的發展過程當中,與人類世界是同樣的同樣的。如今的人都很是看重出身,固然這裏不是否認出身差的就不能成功,成材。只是機率相對低。這也是如今社會的基本狀況,社會階級的固化,對於通常人只能出現意外才能夠打破階級的壁壘,並且只能是一點一點的打破,一個暴發戶短期內,甚至一代人都不能成爲上層階級。微信
技術領域也是這種現象,Kafka 起初是LinkedIn公司採用Scala語言開發的一個多分區,多副本且基於Zookeeper協調的分佈式消息系統,現已捐獻給Apache基金會,成爲頂級項目。目前的Kafka已是一個分佈式流式處理平臺,因具有高吞吐,能夠持久化,可水平擴展,支持流數據處理等多種特性而普遍使用。異步
從Kafka的背景能夠看出,Kafka 出生名門,後又進入最頂級的研究所培育,最終成爲當下最熱門的分佈式流式處理工具。分佈式
Kafka 能有當下的地位,出身是一部分,自身又具有那些特色呢?工具
消息系統:Kafka 與傳統的消息系統(ActiveMQ,RabbitMQ)都具有解耦功能,存儲,擴展性,削峯,可恢復性,緩衝,異步通訊。Kafka 還具有一些通常消息系統不具有的消息順序性及快照回溯消費的功能。oop
存儲系統:Kafka把消息持久化到硬盤,相比於基於內存存儲的系統更加可靠,下降數據丟失的風險。Kafka 的持久化和多副本機制,能夠把Kafka看成長期存儲系統使用。blog
流式處理平臺:Kafka 不只爲每一個流行的流式處理工具提供了數據來源,還提供了一個完整的流式處理類庫、圖片
ZooKeeper 簡介內存
因爲Kafka依賴於ZooKeeper,簡單介紹下Zookeeper。開發
ZooKeeper爲大型分佈式計算提供開源的分佈式配置服務、同步服務和命名註冊。 ZooKeeper曾經是Hadoop的一個子項目,但如今是一個獨立的頂級項目。
ZooKeeper節點將它們的數據存儲於一個分層的命名空間,很是相似於一個文件系統或一個前綴樹結構。客戶端能夠在節點讀寫,從而以這種方式擁有一個共享的配置服務。更新是全序的。
Kafka體系結構
Kafka 包含Producer(生成者),broker,Consumer(消費者) 及ZooKeeper 集羣。
ZooKeeper 用於節點的維護,選舉。早期的Kafka(0.9)版本中,offset 數據記錄在Zookeeper,新的版本中都記錄在Kafka 內部topic __consumer_offsets 。
流程: Producer 負責將消息發送至Broker ,Broker 把接收到的消息存儲到磁盤中,Consumer 在Broker 訂閱並消費消息。
體系涉及的術語
Producer:生產者,消息的發送方。
Broker:服務節點。能夠簡單的理解爲一個獨立的Kafka服務節點或Kafka服務實例,通常狀況還能夠看做是一臺Kafka服務器,前提是這臺服務器只部署了一個Kafka實例.多個Broker組成一個Kafka集羣。
Consumer:消費者,消息的接收方。
頭條號
微信公告號