Kafka使用場景

2021-08-31 01:36:32 字數 1347 閱讀 6860

下面是apache kafka的一些流行用例的描述。有關這些領域的一些概述,請參閱此部落格文章。

kafka 很好地取代了乙個更傳統的訊息broker。訊息brokers 的使用基於各種原因(從資料生產者解耦、緩衝未處理的訊息等)。與大多數訊息傳遞系統相比,kafka具有更好的吞吐量、內建分割槽、複製和容錯性,這使得它成為大規模訊息處理應用的良好解決方案。

在我們的經驗中,訊息傳遞的使用常常是相對低吞吐量的,但是可能需要很低的端到端延遲,並且通常需要基於kafka提供的強持久化保證。

在這個領域中,kafka 與傳統的訊息傳遞系統如activemq或rabbitmq相媲美。

kafka最初的使用場景是為了能夠將使用者活動跟蹤管道重建為一組實時發布-訂閱的需要。這意味著站點活動(頁面檢視、搜尋或使用者可能採取的其他操作)被發布到中心主題,每個活動型別有乙個主題。這些提要可用於訂閱一系列用例,包括實時處理、實時監視,以及載入到hadoop或離線資料倉儲系統中進行離線處理和報告。

活動跟蹤通常是資訊量非常大,因為每個使用者頁面檢視生成了許多活動訊息。

kafka 通常用於監測資料。這涉及從分布式應用程式中聚合統計資料然後集中處理。

許多人使用kafka 作為日誌聚合解決方案的替代者。日誌聚合通常從伺服器收集物理日誌檔案,並將它們放在中心位置(可能是檔案伺服器或hdfs)進行處理。kafka 抽象了檔案的細節,並將日誌或事件資料作為訊息流進行了更為抽象的抽象。這允許較低的延遲處理和更容易地支援多個資料來源和分布式資料消耗。與scribe或flume等以日誌為中心的系統相比,kafka提供了同樣良好的效能,由於複製的存在導致更強的持久化保證以及更低的端到端延遲。

kafka 的許多使用者使用由多個階段組成的處理流水線中處理資料,其中原始輸入資料在kafka 主題中消費,然後聚合、豐富或以其他方式轉換為新主題以進一步消費或後續處理。例如,用於推薦新聞文章的處理管道可能從rss提要中抓取文章內容並將其發布到「文章」主題;進一步的處理可能規範化或去重複該內容,並將已清理的文章內容發布到新主題;最終處理階段可能為嘗試向使用者推薦該內容。這樣的處理流水線基於單個主題建立實時資料流的圖形。從0.10.0.0開始,apache kafka中提供了乙個輕量級但功能強大的流處理庫kafka streams,用於執行上述資料處理。除了kafka streams之外,其他開源流處理工具還包括apache  strom和apache samza。

事件溯源是一種應用程式設計模型,其中狀態變化被記錄為時間順序的記錄序列。kafka對非常大量的儲存日誌資料的支援使它成為應用這種風格構建的應用程式的很好地後端。

kafka 可以作為分布式系統的一種外部提交日誌。日誌有助於在節點之間複製資料,並作為故障節點的重新同步機制來恢復其資料。kafka 中的日誌壓縮特性有助於支援這種用法。在這種用法中,kafka 類似於apache bookkeeper專案。

kafka使用場景

kafka被當作傳統訊息中介軟體的替代品。訊息中介軟體的使用原因有多種 從資料生產者解耦處理,快取未處理的訊息等 與大多數訊息系統相比,kafka具有更好的吞吐量,內建的分割槽,多副本和容錯功能,這使其成為大規模訊息處理應用程式的良好解決方案。在我們的經驗中,訊息的使用通常是相對較低的吞吐量,但可能...

Kafka的使用場景

spring cloud 實戰 乾貨 mybatis 實戰 乾貨 spring boot 實戰 乾貨 react 入門實戰 乾貨 構建中小型網際網路企業架構 乾貨 python 學習持續更新 elasticsearch 筆記 kafka storm 實戰 乾貨 監控一塊,日誌和 metrics等資料...

Kafka的使用場景

kafka更好的替換傳統的訊息系統,訊息系統被用於各種場景 解耦資料生產者,快取未處理的訊息,等 與大多數訊息系統比較,kafka有更好的吞吐量,內建分割槽,副本和故障轉移,這有利於處理大規模的訊息。根據我們的經驗,訊息往往用於較低的吞吐量,但需要低的端到端延遲,並需要提供強大的耐用性的保證。在這一...