經過乙個多月的時間觀察,業務上在整合kafka後,各方面還算穩定,這裡打算抽時間給大家分享一下kafka在實際場景中的一些使用心得。本篇部落格打算先給大家入個門,讓大家對kafka有個初步的了解,知道kafka是做什麼的,下面是本篇部落格的目錄內容:
下面開始今天的部落格分享內容。
kafka它本質上是乙個訊息系統,由當時從linkedin出來創業的三人小組開發,他們開發出了apache kafka實時資訊佇列技術,該技術致力於為各行各業的公司提供實時資料處理服務解決方案。kafka為linkedin的中樞神經系統,管理從各個應用程式的匯聚,這些資料經過處理後再被分發到其他地方。kafka不同於傳統的企業資訊佇列系統,它是以近乎實時的方式處理流經乙個公司的所有資料,目前已經服務於linkedin、netflix、uber以及verizon,並為此建立了實時資訊處理平台。
流水資料是所有站點對其**使用情況做報表時都要用到的資料中最常用的一部分,流水資料報括pv,瀏覽內容資訊以及搜尋記錄等。這些資料通常是先以日誌檔案的形式存在,然後有週期的去對這些日誌檔案進行統計分析處理,然後獲得需要的kpi指標結果。
我們在接觸一門新技術或是新語言時,得明白這門技術(或是語言)的應用場景,也就說要明白它能做什麼,服務的物件是誰,下面用乙個圖來說明,如下圖所示:
首先,kafka可以應用於訊息系統,比如,當下較為熱門的訊息推送,這些訊息推送系統的訊息源,可以使用kafka作為系統的核心組建來完成訊息的生產和訊息的消費。然後是**的行跡,我們可以將企業的portal,使用者的操作記錄等資訊傳送到kafka中,按照實際業務需求,可以進行實時監控,或者做離線處理等。最後,乙個是日誌收集,類似於flume套件這樣的日誌收集系統,但kafka的設計架構採用push/pull,適合異構集群,kafka可以批量提交訊息,對producer來說,在效能方面基本上是無消耗的,而在consumer端中,我們可以使用hdfs這類的分布式檔案儲存系統進行儲存。
kafka的設計之初是希望做乙個統一的資訊收集平台,能夠實時的收集反饋資訊,並且具有良好的容錯能力。kafka中我們最直觀的感受就是它的消費者與生產者,如下圖所示:
這裡kafka對訊息的儲存是根據topic進行歸類的,由訊息生產者(producer)和訊息消費者(consumer)組成,另外,每乙個server稱為乙個broker。對於kafka集群而言,producer和consumer都依賴於zookeeper來保證資料的一致性。
在每條訊息輸送到kafka集群後,訊息都會由乙個type,這個type被稱為乙個topic,不同的topic的訊息是分開儲存的。如下圖所示:
乙個topic會被歸類為一則訊息,每個topic可以被分割為多個partition,在每條訊息中,它在檔案中的位置稱為offset,用於標記唯一一條訊息。在kafka中,訊息被消費後,訊息仍然會被保留一定時間後在刪除,比如在配置資訊中,檔案資訊保留7天,那麼7天後,不管kafka中的訊息是否被消費,都會被刪除;以此來釋放磁碟空間,減少磁碟的io消耗。
在kafka中,乙個topic的多個分割槽,被分布在kafka集群的多個server上,每個server負責分割槽中訊息的讀寫操作。另外,kafka還可以配置分割槽需要備份的個數,以便提高可用行。由於用到來zk來協調,每個分割槽都有乙個server為leader狀態,服務對外響應(如讀寫操作),若該leader宕機,會由其他的follower來選舉出新的leader來保證集群的高可用性。
總體來說,介紹kafka的相關背景,概述及原理,這些較為偏理論,概念性較強,需要大家認真的去理解、琢磨,這裡可以大致熟悉一下,心中有個輪廓,後面會陸續介紹kafka的實戰用法,讓大家在實際業務和編碼中去體會kafka的這些原理。
kafka入門實戰
kafka和其他的mq的最大的區別就是構建實時資料管道和stream資料流,和可以分布式,好容錯性的儲存訊息 1.安裝jdk,略 3.解壓 tar xzf kafka 2.11 2.1.0.tgz cd kafka 2.11 2.1.0 4.啟動zookeeper 因為kafka的啟動依賴於zook...
Kafka實戰 入門
經過乙個多月的時間觀察,業務上在整合kafka後,各方面還算穩定,這裡打算抽時間給大家分享一下kafka在實際場景中的一些使用心得。本篇部落格打算先給大家入個門,讓大家對kafka有個初步的了解,知道kafka是做什麼的,下面是本篇部落格的目錄內容 下面開始今天的部落格分享內容。kafka它本質上是...
Kafka實戰 入門
經過乙個多月的時間觀察,業務上在整合kafka後,各方面還算穩定,這裡打算抽時間給大家分享一下kafka在實際場景中的一些使用心得。本篇部落格打算先給大家入個門,讓大家對kafka有個初步的了解,知道kafka是做什麼的,下面是本篇部落格的目錄內容 下面開始今天的部落格分享內容。kafka它本質上是...