3
我正在構建一個具有以下要求的應用程序,我剛剛開始使用flink。使用Apache Flink進行數據流傳輸
- 提取數據到卡夫卡與說50個分區(呼入率 - 100,000封郵件/秒)從卡夫卡和處理每個數據
- 讀取數據(做一些計算,與舊的數據等進行比較)實時
- 將輸出存儲在卡桑德拉
我在尋找一個實時流媒體平臺,發現Flink非常適合實時和批量處理。
- 您是否認爲flink最適合我的使用情況,還是應該使用Storm,Spark streaming或任何其他流媒體平臺?
- 我是否需要在Google數據流中編寫數據管道來執行我在flink上的一系列步驟,或者是否有任何其他方式來執行實時流式傳輸的一系列步驟?
- 說如果我的每次計算花費20毫秒,我怎麼能更好地設計它與flink並獲得更好的吞吐量。
- 我可以使用Redis或Cassandra在flink中爲每個計算獲取一些數據嗎?
- 我能夠在flink內部使用JVM內存中緩存嗎?
- 我也可以基於某個時間窗口(例如5秒)的關鍵字聚合數據。例如,假設有100條消息進入,10條消息具有相同的密鑰,我可以將所有消息與同一個密鑰組合在一起並進行處理。
- 有沒有關於使用flink的最佳實踐的教程?
謝謝,感謝您的幫助。
感謝您的回覆。我想澄清一件事。我應該使用谷歌數據流sdk創建一個管道並在flink上運行它嗎?或者flink本身有一些sdk,我可以在其中創建一個管道。我查看了數據流api,但並未完全弄清楚它是否具有與數據流類似的所有功能。謝謝你的幫助。 – Neoster
Apache Beam(以前稱爲Google DataFlow API)runner是在Flink的DataStream API之上實現的。所以DataStream API(至少)和Beam API一樣具有表現力。 –