apache kafka® 是 乙個分布式流處理平台. 這到底意味著什麼呢?
基本結構
傳統的訊息系統有兩個模組: 佇列 和 發布-訂閱。
在佇列中,消費組允許你將處理過程分發給一系列程序(消費組中的成員)。
在發布訂閱中,kafka允許你將訊息廣播給多個消費組。
kafka的優勢在於每個topic都有以下特性—可以擴充套件處理並且允許多訂閱者模式—不需要只選擇其中乙個.
kafka相比於傳統訊息佇列還具有更嚴格的順序保證
kafka 流處理不僅僅用來讀寫和儲存流式資料,它最終的目的是為了能夠進行實時的流處理。
在kafka中,流處理器不斷地從輸入的topic獲取流資料,處理資料後,再不斷生產流資料到輸出的topic中去。
簡單的資料處理可以直接用生產者和消費者的api。對於複雜的資料變換,kafka提供了streams api。 stream api 允許應用做一些複雜的處理,比如將流資料聚合或者join。
這一功能有助於解決以下這種應用程式所面臨的問題:處理無序資料,當消費端**變更後重新處理輸入,執行有狀態計算等。
streams api建立在kafka的核心之上:它使用producer和consumer api作為輸入,使用kafka進行有狀態的儲存, 並在流處理器例項之間使用相同的消費組機制來實現容錯。
通過組合儲存和低延遲訂閱,流式應用程式可以以同樣的方式處理過去和未來的資料。 乙個單一的應用程式可以處理歷史記錄的資料,並且可以持續不斷地處理以後到達的資料,而不是在到達最後一條記錄時結束程序。 這是乙個廣泛的流處理概念,其中包含批處理以及訊息驅動應用程式
同樣,作為流資料管道,能夠訂閱實時事件使得kafk具有非常低的延遲; 同時kafka還具有可靠儲存資料的特性,可用來儲存重要的支付資料, 或者與離線系統進行互動,系統可間歇性地載入資料,也可在停機維護後再次載入資料。流處理功能使得資料可以在到達時轉換資料。
Kafka 基礎概念理解
producer 訊息生產者,向 kafka broker 發訊息的客戶端。consumer 訊息消費者,從 kafka broker 取訊息的客戶端。consumer group 消費者組 cg 消費者組內每個消費者負責消費不同分割槽的資料,提高消費能力。乙個分割槽只能由組內乙個消費者消費,消費者...
KAFKA 開發者視角 概念理解
kafka是目前應對大資料需求下支援高吞吐量,高可用性,大資料量的訊息佇列。靈活使用kafka的特性可以解決很多實際的業務問題.kafka是採用集群部署可以橫向擴充套件的架構。說到集群就不得不說一下分布式,兩者都有壓力分攤為設計目的。簡單說一下對集群和分布式的理解。集群 通過分流資料達到壓力分攤的目...
react入門概念的理解
1.什麼是react?react是乙個前端框架,來自於facebook,適合於大型專案,效率高,基於元件化的方式開發。react是乙個基於元件化開發的前端框架,是facebook於13年5月開始開源的乙個框架,效率非常高,適合於大型專案,用於製作單頁面spa應用。2.react環境搭建 1 傳統標籤...