1.1 kafaka 簡介
Apache Kafka 是一個快速、可擴展的、高吞吐的、可容錯的分布式“發布-訂閱”訊息系統,
使用 Scala 與 Java 語言撰寫,能夠將訊息從一個端點傳遞到另一個端點,較之傳統的訊息中間件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、內置磁區、支持訊息副本和高容錯的特性,非常適合大規模訊息處理應用程式,
Kafka 官網: http://kafka.apache.org/
1.2 Kafa 系統架構

1.3 應用場景
Kafka 的應用場景很多,這里就舉幾個最常見的場景,
1.3.1 用戶的活動追蹤
用戶在網站的不同活動訊息發布到不同的主題中心,然后可以對這些訊息進行實時監測實時處理,當然,也可加載到 Hadoop 或離線處理資料倉庫,對用戶進行畫像,像淘寶、京東這些大型的電商平臺,用戶的所有活動都是要進行追蹤的,
1.3.2 日志聚合

1.3.3 限流削峰

1.4 kafka 高吞吐率實作
Kafka 與其它 MQ 相比,其最大的特點就是高吞吐率,為了增加存盤能力,Kafka 將所有的訊息都寫入到了低速大容的硬碟,按理說,這將導致性能損失,但實際上,kafka 仍可保持超高的吞吐率,性能并未受到影響,其主要采用了如下的方式實作了高吞吐率,
? 順序讀寫:Kafka 將訊息寫入到了磁區 partition 中,而磁區中訊息是順序讀寫的,順序讀寫要遠快于隨機讀寫,
? 零拷貝:生產者、消費者對于 kafka 中訊息的操作是采用零拷貝實作的,
? 批量發送:Kafka 允許使用批量訊息發送模式,
? 訊息壓縮:Kafka 支持對訊息集合進行壓縮,
1.5 流處理
kafka訊息處理包含多個階段,其中原始輸入資料是從kafka主題消費的,然后匯總,豐富,或者以其他的方式處理轉化為新主題,例如,一個推薦新聞文章,文章內容可能從“articles”主題獲取;然后進一步處理內容,得到一個處理后的新內容,最后推薦給用戶,這種處理是基于單個主題的實時資料流,從0.10.0.0開始,輕量,但功能強大的流處理,就進行這樣的資料處理了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/192920.html
標籤:java
