IM在一個POC轉換現有弗林克應用/拓撲工作使用KafkaStreams。我的問題是關於部署。kafkastreams - 加入更多的處理能力
特別是 - 在Flink中,向flink安裝添加了「工作者節點」,然後向拓撲添加更多並行化以跟上日益增長的數據速率。
隨着數據速率的增加,人們如何增加KStream容量? KStreams是否自動處理?我是否啓動更多流程(ala微服務)?
還是我錯過了這裏的大圖?
IM在一個POC轉換現有弗林克應用/拓撲工作使用KafkaStreams。我的問題是關於部署。kafkastreams - 加入更多的處理能力
特別是 - 在Flink中,向flink安裝添加了「工作者節點」,然後向拓撲添加更多並行化以跟上日益增長的數據速率。
隨着數據速率的增加,人們如何增加KStream容量? KStreams是否自動處理?我是否啓動更多流程(ala微服務)?
還是我錯過了這裏的大圖?
我是否會推出更多流程(ala Micro-services)?
簡短的回答是肯定的:
看到卡夫卡流文件在http://docs.confluent.io/3.0.0/streams/developer-guide.html#elastic-scaling-of-your-application進一步的細節(遺憾的是卡夫卡流Apache的卡夫卡文檔沒有這些細節還沒有)。
還是我錯過了這裏的大圖?
大的圖片是,圖片其實很好,很小。 :-)
因此,讓我添加以下內容,因爲我覺得很多用戶被其他相關技術的複雜性所困惑,然後並不真正期望您可以在一個流中執行流處理(包括其部署)更簡單的方法,就像你可以用Kafka Streams做什麼:
Kafka Streams應用程序是一個正常的普通的舊Java應用程序,恰好使用Kafka Streams庫。現有流處理技術的一個關鍵區別在於,通過使用Kafka Streams庫,您的應用程序變得可擴展,具有彈性,容錯等特性,而無需使用特殊的「處理集羣」來添加計算機,就像爲Flink,Spark,Storm等做好準備。Kafka Streams部署模型更加簡單和簡單:只需啓動或停止應用程序的其他實例(即字面上相同的代碼)。這適用於基本上任何與部署相關的工具,包括但不限於Puppet,Ansible,Docker,Mesos,YARN。您甚至可以通過運行java ... YourApp
來手動執行此操作。
因此,他們共享數據(聚合等),如flink /風暴/等應用程序? – ethrbunny
另外 - 爲了實現這個運行,需要使用Kafka的Confluent版本/版本? – ethrbunny
應用程序實例不共享數據。我建議閱讀文檔以獲得更好的理解。 –