一、Kafka概述 Kafka是一種分散式的,基於釋出/訂閱的訊息系統。主要設計目標如下:
需要JAVA Spring Cloud大型企業分散式微服務雲構建的B2B2C電子商務平臺原始碼請加企鵝求求: :二一四七七七五六三三
以時間複雜度為O(1)的方式提供訊息持久化能力,並保證即使對TB級以上資料也能保證常數時間的訪問效能 高吞吐率。即使在非常廉價的商用機器上也能做到單機支援每秒100K條訊息的傳輸 支援Kafka Server間的訊息分割槽,及分散式訊息消費,同時保證每個partition內的訊息順序傳輸 同時支援離線資料處理和實時資料處理
二、Kafka的架構和核心概念
可以看出來:1.Kafka可以作為叢集執行在一臺或者多個伺服器上面;
2.Kafka叢集可以分類地儲存記錄流,以打標籤的方式,就是採用topics,每個broker可以打個topic,這樣能保證消費者可以根據topic選擇性消費;
3.每個記錄由Key、Value、timestamp構成。
Kafka四個核心的API
1.ProducerAPI:允許一個應用向一個或多個topic裡釋出記錄流;
2.ConsumerAPI:允許一個應用訂閱一個或多個topics,處理topic裡的資料流,就相當於消費;
3.StreamAPI:允許應用扮演流處理的作用,從一個或多個topic裡消費資料流,然後產生輸出流資料到其他一個或多個topic裡,對輸入流資料有效傳輸到輸出口;
4.ConnectorAPI:允許執行和構建一個可重複利用的生產者和消費者,能將kafka的topic與其他存在的應用和資料庫裝置相連線,比如連結一個實時資料庫,可以捕捉到每張表的變化。
這四個API,主要應用在IDEA上對應用程式的開發中,通過程式碼的形式管理Kafka。在第四部分將會對前兩個API寫個簡單DEMO演示。