1. 程式人生 > >分散式專題(九)kafaka

分散式專題(九)kafaka

文件

連結:https://pan.baidu.com/s/1eLHBXs-V9bOmkAh9ZLXcAw 
提取碼:dhcd

連結:https://pan.baidu.com/s/13dqujepEIPJ5r_0Z8ujSxw 
提取碼:aq59

 

安裝kafka

  1. tar -zxvf .
  2. 進入到config目錄下修改server.properties

          broker.id

          listeners=PLAINTEXT://192.168.11.140:9092

          zookeeper.connect=192.168.11.140:2181,192.168.11.141:2181.192.168.11.138:2181

    3.啟動

          sh kafka-server-start.sh -daemon ../config/server.properties

          sh kafka-server-stop.sh

建立topic

傳送訊息 

建立消費者

實現細節

訊息有key(可為空)、value

 topic&Partition 

Topic是用於儲存訊息的邏輯概念,可以看作一個訊息集合。每個topic可以有多個生產者向其推送訊息,也可以有任意多個消費者消費其中的訊息

Partition是以檔案的形式儲存在檔案系統中,儲存在kafka-log目錄下,命名規則是:<topic_name>-<partition_id>

kafka的高吞吐量的因素

  1. 順序寫的方式儲存資料 ;
  2. 批量傳送;在非同步傳送模式中。kafka允許進行批量傳送,也就是先講訊息快取到記憶體中,然後一次請求批量傳送出去。這樣減少了磁碟頻繁io以及網路IO造成的效能瓶頸

                batch.size 每批次傳送的資料大小

                linger.ms  間隔時間

       3.零拷貝

訊息從傳送到落地儲存,broker維護的訊息日誌本身就是檔案目錄,每個檔案都是二進位制儲存,生產者和消費者使用相同的格式來處理。在消費者獲取訊息時,伺服器先從硬碟讀取資料到記憶體,然後把記憶體中的資料原封不懂的通過socket傳送給消費者。雖然這個操作描述起來很簡單,但實際上經歷了很多步驟

 

日誌策略、訊息可靠性、副本機制 見文件

java程式碼

看視訊8.2上或者

https://blog.csdn.net/q975583865/article/details/82078657