1. 程式人生 > >kafka(九):Kafka為什麼快

kafka(九):Kafka為什麼快

 1. 訊息集(message set)

   生產者在將訊息傳送給Kafka的時候,可以將多條訊息以前傳送,減低IO的次數

2. 二進位制傳輸

   Kafka的訊息傳遞過程中,會將資料轉換為位元組陣列來進行傳遞

3. 順序讀寫磁碟

   根據offset遞增的順序讀取磁碟,而且每次讀取資料是多條資料一起讀取的

4. "零"拷貝(沒有任何資料處理)

   kafka在傳輸資料的時候,log檔案中的資料直接通過系統記憶體(核心)直接網路傳輸,不經過應用(kafka)的記憶體的資料的交換

5. 端到端的資料壓縮

   (1)定義:kafka支援直接傳輸壓縮的資料(壓縮是kafka的Producer Api負責)
            kafka接收到producer傳輸過來的壓縮的資料,不會進行解壓操作,直接儲存;
            然後當consumer獲取資料的時候,直接將壓縮好的資料傳輸過去,consumer接收到壓縮資料後再進行解壓操作
   (2)作用:這種壓縮減少網路壓力,但是增大了生產者(壓縮)和消費者(解壓)的壓力
                Kafka支援預設支援三種壓縮方式:lz4(一般不用)、gzip、snappy(最常用)
                配置引數,需要在Producer中進行配置:引數是:compression.codec,引數值預設為none,表示不進行壓縮