Kafka Streams:它是適合您的流處理引擎嗎?
阿新 • • 發佈:2018-12-27
在這篇文章中,我們將詳細討論流媒體訪問模式以及HDF 3.3和即將釋出的HDP 3.1版本中Kafka Streams支援的增加。
在新增Kafka Streams支援之前,HDP和HDF支援兩個流處理引擎:帶有Storm的Spark Structured Streaming和Streaming Analytics Manager(SAM)。很自然,這會產生以下問題:為什麼要在平臺上新增第三個流處理引擎?
通過選擇使用Spark結構化流式傳輸或SAM與Storm支援,客戶可以選擇根據其非功能性需求和用例選擇正確的流處理引擎。但是,這些引擎都沒有解決我們從客戶那裡看到的以下型別的要求:
- 輕量級庫,用於構建基於事件的微服務,Kafka作為訊息傳遞/事件主幹。
- 應用程式執行時不應該需要群集。
- 迎合那些希望以程式設計方式使用簡單API為不太複雜的用例構建流應用程式的應用程式開發人員。
- 對於一次性語義的要求,其中資料管道僅由Kafka組成。
Kafka Streams解決了這些要求。通過新增Kafka Streams,客戶現在可以根據自己的需求和用例選擇正確的流處理引擎。下表提供了一些一般指導原則/比較。
上表中包含大量資訊。那麼,Kafka Streams何時成為您流處理需求的理想選擇?考慮以下:
- 您的流處理應用程式由Kafka到Kafka管道組成。
- 您不需要/想要另一個叢集進行流處理。
- 您希望在流上執行常見的流處理功能,如過濾,連線,聚合,豐富,以便簡化流處理應用程式。
- 您的目標使用者是具有Java開發背景的開發人員。
- 您的用例是關於構建輕量級微服務,簡單的ETL和流分析應用程式。
這三個支援的流引擎中的每一個都使用一組集中的平臺服務,提供安全性(身份驗證/授權),審計,治理,模式管理和監視功能。
下一步是什麼?
在下面的文章中,我們將演示使用與Schema Registry,Atlas和Ranger整合的Kafka Streams,使用虛構的用例構建一組微服務應用程式。