0
我正在考慮如何使用Apache Flink作爲我目前正在開發的投票系統。我是一個完全新手Flink和任何幫助將不勝感激。Apache Flink用於實時處理有限流
的要求是:
- 一些特權的用戶可以在任意的問題開始投票。用戶可以隨時關閉投票。
- 多達數十萬人可能參加投票
- 投票計數應在投票開始後立即開始,並且中間結果應隨時間更新,以便它可以顯示給參與者。
- 當系統在投票結束後結束計數時,應通知參與者最終結果。
在我的理解中,Flink的流處理是針對無限流的實時處理,而批處理是針對有限流的非實時處理。
如何將Flink應用於我的需求,這是一個實時處理有限流?
我查看了'SocketTextStreamFunction'實現,併爲我的用例提出了下面的策略。你認爲這是要走的路嗎? 1.參與者的每個投票都作爲單個事件發送到我的'SourceFunction'。 2.當主機用戶關閉投票時,在其有效載荷中包含終止信號的特殊事件將發送到我的'SourceFunction',從而導致它退出'run'方法。 3.我的窗口應該有一個額外的觸發器,在接受終止事件時觸發,以免丟失數據。 – kimamula
這聽起來很不錯。如果您使用基於事件時間的窗口,則還可以通過來自源的「Long.MAX_VALUE」發出水印來觸發窗口計算。 –