kafka是乙個分布式的基於發布/訂閱模式的訊息佇列,主要應用於大資料實時處理領域。在kafka中,kafka對訊息的儲存根據topic進行分類,傳送訊息的稱為producer,訊息接收者稱為consumer。乙個server成為乙個broker,kafka依賴zookeeper儲存一些元資料資訊
kafka具有高容錯,高效的特點。
kafka的應用
一台kafka的伺服器就是乙個broker,多個broker組成乙個cluster.
kafka可以根據不同的業務需求將不同的資料存放在不同的topic中,topic是乙個邏輯上的概念,在物理存檔上,topic對應資料夾的字首。kafka中的topics總是多訂閱者模式,乙個topic可以擁有乙個或者多個消費者訂閱其上的資料。乙個topic可以分布式的儲存在多個kafka broker中。
每個topic有多個分割槽,通過分割槽的設計,topic可以不斷的進行擴充套件。使用分割槽有兩個好處,一是topic可以不斷的擴充套件,即乙個topic的多個分割槽可以分布式的儲存在多個broker之中。二是在消費者消費資料時,可以並行的處理。kafka可以保證乙個partition中的資料有序,但不能保證乙個topic中讀出的資料有序。例如:a-1(1,3) a-2(2,4)
每條訊息通過offset標識記錄的有序,offset是線性遞增的,消費者可以通過offset從任意位置讀取資料。
日誌的分割槽在kakfa集群的伺服器上,每個伺服器在處理資料和請求時,共享這些分割槽,每乙個分割槽都會在已配置的伺服器上進行備份,生成多個副本,保證容錯性。每乙個分割槽都有乙個leader和follwers。與zookpeer等不同,在kafka中,對於分割槽的所有寫請求都由leader處理,多個follower從leader處拿資料。
訊息生產者,就是向kafka broker發訊息的客戶端。生產者負責將記錄分配到topic的指定 partition(分割槽)中。
訊息消費者,向kafka broker取訊息的客戶端。每個消費者都要維護自己讀取資料的offset。
每個消費者都會使用乙個消費組名稱來進行標識。同乙個組中的不同的消費者例項,可以分布在多個程序或多個機器上。同乙個組中的不同consumer只能同時讀乙個topic的不同分割槽。總之就是乙個組中的consumer讀的資料互斥,不同組的consumer讀的資料互不干擾。
kafka中的record在生產時必須指定topic和value屬性,可以選擇指定partition,key,ts等。每個record在進入到分割槽後,會生成唯一的offset,
offset可以讓消費者在消費時,自由靈活的從任意位置消費
Kafka系列1 Kafka安裝與相關命令
單節點kafka安裝 解壓kafka 執行zookeeper 必須 執行zookeeper 修改kafka配置檔案 broker.id 0 port 9092 log.dir tmp kafka logs 0 zookeeper.connect 192.168.60.81 2181,192.168....
kafka入門系列1 kafka安裝前準備
提取碼 1dj7 在根目錄下建立tempfile資料夾,然後將zookeeper和kafka上傳到該目錄下並解壓 root localhost tempfile tar xvf zookeeper 3.4.7.tar.gz root localhost tempfile tar xvf kafka ...
Kafka 基本概念 1
kafka從0.9版本開始,kafka的標語已經從乙個 高吞吐量,分布式的訊息系統 更改為了 乙個分布式的流平台 注 不要小看標語的改變,標語的改變其實意味著很多。儲存系統 流處理系統 上述說明了流式資料平台所需要的具備的特點,那麼kafka作為乙個流式的資料平台,則都具備了上述的那些特徵?儲存系統...