Apache Kafka 是一個 Distributed Queue 的實現,很多 Stream Computing 平台都支援 Kafka 作為 data source。
Kafka 有幾個特色:
- 分散式架構,所以天生就是容易擴充的。
- 基於磁碟空間,且避免隨機存取。
- 因為儲存空間大,因此Queue裡的資料就算已消耗,也可以不用刪掉。好處包括:其他新加入的consumer可以處理到過去的資料(重要特色)。如果有batch-oriented的consumer (如:Hadoop),可以一次拉取足夠大量的資料,以利batch的處理效率。
- 對資料的包裝是輕量級的,且可壓縮。避免掉不必要的物件包覆,可以直接以檔案的型式來處理資料。
- 因為可以直接處理檔案資料,直接用OS的page cache,不需要額外Applicaion Cache來競爭珍貴的記憶體空間。
接下來的幾天,我會再用之前講過的維度,來介紹Kafka的分散式特徵。