本人英文水準非常有限,看不懂勿噴。
1、入門
1.1介紹
kafka是一個分布式流處理平台。
.......
kafka有四種api:
生産者API允許一個應用給kafka topics釋出一些流記錄。
消費者API:允許一個應用訂閱一些topics,處理流記錄。
流API:允許一個應用成為流處理器,消費一些topics的輸入流,生産output topics的輸出流,有效轉換輸入和輸出。
連接配接API:允許建構運作可重複利用的生産者和消費者,吧kafka topic連接配接到可用應用和資料系統。
例如,一個關聯關系型資料庫的連接配接器可以捕獲所有改變到表裡。
.......
1.2使用者案例
消息傳送
kafka可以作為傳統消息代理系統的替代方案。消息代理過去使用有很多原因例如解耦處理資料生産者,緩存未處理消息等。
對比很多其他消息系統,kafka有更好的吞吐量、内置分區、同步、容錯性,為更大規模消息處理應用提供解決方案。
在我們經驗中消息系統常被用作比較低吞吐量,但是可能要求低的端對端延遲這就經常依賴于kafka提供的強大的可靠性保證。
在這個領域kafak堪比傳統消息系統例如activeMQ/RabbitMQ
web網站活性跟蹤
kafka原始使用案例是能重構活性跟蹤作為實時釋出-訂閱資訊流。這意味着動态網站(網頁浏覽、搜尋或使用者進行的其他動作)可以釋出到中心topics用一個活動類型。這些資訊流是可以訂閱的作為一系列用例,包括實時處理、實時監控和加載到hadoop或者離線資料存入系統倉庫來曆先處理和報表。
活性跟蹤經常和使用者網頁浏覽一樣高容量。
度量
kafka經常用作動态監控資料。包括把分布式應用統計聚合成操作資料的中心資訊流
日志集合
很多人使用kafka作為日志集合的替代方案。日志集合通常收集到靜态伺服器的日志檔案,把他們放在中心區域(一個伺服器檔案或HDFS)來處理。kafka把檔案詳情抽象出來并且把日志或事件資料作為一個消息流。這允許處理低延時,而且更容易支援多種資料源和分布式資料消費。在對比日志中心系統像Scribe或者Flume,kafka同樣有好的表現,更強的耐用性因為同步,更低的端對端延遲。
流處理
很多時候kafka用作處理多階段通道,把輸入資料給kafka topics處理,然後進行彙總,豐富或者其他轉換成新的topics來為将來消費或者或許處理。例如,一個推薦新聞文章的處理通道可能從RSS資訊流中抓取内容然後釋出成一篇文章;深加工可能标準化或者複制這個内容然後釋出清洗過的文章内容成新文章。最後一步可能嘗試推薦内容給讀者。像處理通道建立實時資料圖表作為個别topics。0.10版本之後,輕量級但是強大的流處理庫叫kafka streams是可用的在apache kafka去執行上面描述的資料處理。除了kafka streams,供選擇的還有開源劉處理工具包括apache storm和apache samza。
事件驅動
事件驅動是應用設計的一種方式,狀态改變是笨拙的作為時間順序的記錄。kafka支援非常大的日志資料存儲,使它成為傑出的背景應用
送出日志
kafka能作為分布式系統的一種外部日志送出。這個日志幫助在節點之間複制,充當失敗節點的重新同步機制,來存貯他們的資料。日志壓縮特性支援kafka實作這個用法。kafka這樣用和Apache BookKeeper項目類似。
本人英文水準非常有限,看不懂勿噴。