至於為什麼 Kafka 適合搭配 Stream Computing呢? 因為 Stream Computing 本質上也是一種可平行處理、易擴充的分散式處理架構,所以也要搭配同樣可平行讀寫、易擴充的data source/data sink才能發揮最大的效能。且Stream Computing的處理過程要求low latency,這是類似於Queue的需求,而非Log aggregation Tool (如: Flume)的需求。
Kafka目前是實現Lambda architecture的要角。因為只有Kafka能同時滿足real-time processing與batch processing對於data source的需求。
對於 Stream Computing 來說,Kafka 可以不只作為 data source/data sink,也可以作為state commit log的sync工具。
總之,對於Stream Computing來說,搭配Apache Kafka能帶來許多好處。最後我用一段影片來終結對於Apache Kafka的介紹。這段影片是Amazon Kinesis的介紹影片,Kinesis是Amazon上類似Kafka的服務,來看看Amazon是怎麼介紹Kinesis的吧。