Kafka學習筆記 --- 使用案例/應用方面

  • 消息

Kafka很好地代替了傳統的message broker(消息代理)。Message Broker可以用於各種場合(如將數據生成器與數據處理解耦,緩衝區未處理的消息)。與大多數消息系統相比,Kafka擁有更好的吞吐量、內置分區、具有複製和容錯的功能,這使它成爲一個非常理想的大型消息處理應用。根據我們的經驗,通常消息傳遞使用較低的吞吐量,但可能要求較低的端到端延遲,Kafka提供了強大的持久性來滿足這一要求。在這方面Kafka可以與傳統的消息傳遞系統(ActiveMQ和RabbitMQ)相媲美。

  • 跟蹤網站活動

Kafka的初始化將用戶活動跟蹤管道重建爲一組實時發佈-訂閱源,這意味着網站活動(瀏覽網站、搜索、其他操作)被髮布到中心Topic,其中每個活動類型中有一個Topic。這些訂閱源提供了一系列用例,包括實時處理、實時監視、對加載到Hadoop或離線數據倉庫系統的數據進行離線處理和報告。每個用戶瀏覽頁面時都聲稱了許多活動信息,因此活動跟蹤的數據量通常非常大。

 

  • 度量

Kafka通常用於監控數據。這涉及到分佈式應用程序中彙總數據,然後生成可操作的數據集中數據源。

 

  • 日誌聚合

許多人使用Kafka來代替日誌聚合解決方案。日誌聚合系統通常從服務器收集服務日誌文件,並將其置於一箇中心繫統(可能是文件服務器或HDFS)進行處理。Kafka從這些日誌文件中提取信息,並將其抽象爲一個更加清晰的消息流。這樣可以實現更低的延遲處理而且易於支持多個數據源及分佈式數據的消耗。與Scribe或Flume等以日誌爲中心的系統相比,Kafka具備同樣出色的性能、更強的耐用性(因爲複製功能)和更低的端到端延遲。

 

  • 流處理

許多Kafka用戶通過管道來處理數據,有多個階段:從Kafka topic中消費原始輸入數據,然後聚合,修飾或通過其他方式轉化爲新的Topic,以提供進一步消費或者處理。例如,一個推薦新聞文章的處理管道可以從RSS訂閱源抓取文章內容並將其發佈到文章“topic”;然後對這個內容進行標準化或者重複的內容,並將處理完的文章內容發佈到新的topic;最終它會嘗試將這些內容推薦給用戶。這種處理管道基於各個topic創建時數據流圖。從0.10.0.0開始,在Apache Kafka中,Kafka Streams可以用來執行上述的數據處理,它是一個輕量但功能強大的流處理庫。除Kafka Streams外,可供替代的開源流處理工具還包含Storm等。

 

  • 採集日誌

Event Sourcing是一種應用程序設計風格,按時間來記錄狀態的更改。Kafka可以存儲非常多的日誌數據。爲基於event sourcing的應用程序提供強有力的支持。

 

  • 提交日誌

Kafk可以從外部爲分佈式系統提供日誌的提交功能。功能有助於記錄節點和行爲間的數據,採用重新同步機制可以從失敗節點恢復數據。Kafka日誌壓縮功能支持這一作用。這一點與BookKeeper用法類似。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章