閱讀388 返回首頁    go 技術社區[雲棲]


《KAFKA官方文檔》使用場景

以下是Apache Kafka™的一些常見使用場景的描述。有關這些實踐領域的一些概述,請參閱此博文

消息

Kafka被當作傳統消息中間件的替代品。消息中間件的使用原因有多種(從數據生產者解耦處理,緩存未處理的消息等)。與大多數消息係統相比,Kafka具有更好的吞吐量,內置的分區,多副本和容錯功能,這使其成為大規模消息處理應用程序的良好解決方案。
在我們的經驗中,消息的使用通常是相對較低的吞吐量,但可能需要較低的端到端延遲,並且通常需要強大的持久性保證,這些Kafka都能提供。

在這些要點中,Kafka可與傳統消息係統(如ActiveMQRabbitMQ)媲美。

網站行為跟蹤

Kafka的初衷就是能夠將用戶行為跟蹤管道重構為一組實時發布-訂閱數據源。這意味著網站活動(頁麵瀏覽量,搜索或其他用戶行為)將被發布到中心主題,這些中心主題是每個用戶行為類型對應一個主題的。這些數據源可被訂閱者獲取並用於一係列的場景,包括實時處理,實時監控和加載到Hadoop或離線數據倉庫係統中進行離線處理和報告。

用戶行為跟蹤通常是非常高的數據量,因為用戶每個頁麵瀏覽的都會生成許多行為活動消息。

測量

kafka經常用於運行監控數據。這涉及匯總分布式應用程序的統計數據,以產生操作運營數據的匯總數據。

日誌聚合

許多人使用Kafka作為日誌搜集解決方案的替代品。日誌搜集通常從服務器收集物理日誌文件,並將它們集中放置(可能是文件服務器或HDFS),以便後續處理。kafka抽象出文件的細節,並將日誌或事件數據作為消息流清晰地抽象出來。這可以為更低處理延遲提供支持,對多數據源和分布式數據消費更容易支持。與以日誌為中心的係統(如Scribe或Flume)相比,Kafka性能同樣出色,由於副本機製確保了更強的耐用性保,並且端到端延遲更低。

流處理

許多kafka使用者處理由多個階段組成的處理管道中的數據,其中原始輸入數據從kafka主題消費,然後匯總,豐富或以其他方式轉換為新主題以便進一步消費或後續處理。例如,用於推薦新聞文章的管道可以從RSS提要中抓取文章內容並將其發布到“文章”主題;進一步規範化或刪除重複內容,並將清洗後的文章內容發布到新主題。最後的處理階段可能會嚐試向用戶推薦這些內容。這樣的管道創建實時基於各個主題數據流圖。從0.10.0.0版本開始,Apache Kafka提供了一個名為Kafka Streams的輕量級,但功能強大的流處理庫,可執行如上所述的數據處理。除了Kafka Streams之外,替代開源流處理工具還包括Apache StormApache Samza

事件源

事件源是一種應用程序設計風格,其中狀態的改變作為事件序列被記錄下來。 Kafka對非常大的存儲日誌數據提供支持,使其成為以此風格構建的應用程序的一種優秀後端。

提交日誌

Kafka可以作為分布式係統的一種外部提交日誌。日誌有助於在節點間複製數據,並作為故障節點恢複其數據的重新同步機製。kafka日誌壓縮功能有助於這種使用場景。在這個場景中,Kafka類似於Apache BookKeeper

最後更新:2017-05-18 20:36:45

  上一篇:go  《KAFKA官方文檔》翻譯邀請
  下一篇:go  《Flink官方文檔》Batch Examples(二)