kafka被當作傳統訊息中介軟體的替代品。訊息中介軟體的使用原因有多種(從資料生產者解耦處理,快取未處理的訊息等)。與大多數訊息系統相比,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 storm和apache samza。
事件源是一種應用程式設計風格,其中狀態的改變作為事件序列被記錄下來。 kafka對非常大的儲存日誌資料提供支援,使其成為以此風格構建的應用程式的一種優秀後端。
kafka可以作為分布式系統的一種外部提交日誌。日誌有助於在節點間複製資料,並作為故障節點恢復其資料的重新同步機制。kafka日誌壓縮功能有助於這種使用場景。在這個場景中,kafka類似於apache bookkeeper。
Kafka使用場景
下面是apache kafka的一些流行用例的描述。有關這些領域的一些概述,請參閱此部落格文章。kafka 很好地取代了乙個更傳統的訊息broker。訊息brokers 的使用基於各種原因 從資料生產者解耦 緩衝未處理的訊息等 與大多數訊息傳遞系統相比,kafka具有更好的吞吐量 內建分割槽 複製和...
Kafka的使用場景
spring cloud 實戰 乾貨 mybatis 實戰 乾貨 spring boot 實戰 乾貨 react 入門實戰 乾貨 構建中小型網際網路企業架構 乾貨 python 學習持續更新 elasticsearch 筆記 kafka storm 實戰 乾貨 監控一塊,日誌和 metrics等資料...
Kafka的使用場景
kafka更好的替換傳統的訊息系統,訊息系統被用於各種場景 解耦資料生產者,快取未處理的訊息,等 與大多數訊息系統比較,kafka有更好的吞吐量,內建分割槽,副本和故障轉移,這有利於處理大規模的訊息。根據我們的經驗,訊息往往用於較低的吞吐量,但需要低的端到端延遲,並需要提供強大的耐用性的保證。在這一...