kafka(九):Kafka為什麼快
阿新 • • 發佈:2018-11-08
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,表示不進行壓縮