最重要的區(qū)別:SparkStreaming是微批處理,storm是按條處理。
舉個栗子:現(xiàn)在要實現(xiàn)個簡單的信息流(新聞視頻)實時推薦系統(tǒng)
1、sparkStreaming可以用來:每隔10s將這10s內(nèi)的用戶瀏覽新聞、視頻的日志事件進行匯總,根據(jù)用戶點擊的新聞、視頻,根據(jù)之前協(xié)同過濾、或相似度計算得到的離線推薦結(jié)果給用戶算出這段時間內(nèi)瀏覽的內(nèi)容的相關(guān)內(nèi)容,保存到Hbase中,供用戶下次刷新列表時使用。因為這個實時性要求沒那么高,我不需要毫秒級內(nèi)對用戶的瀏覽行為進行實時反饋。
2、storm可以用來,實時組裝用戶的推薦結(jié)果。用戶在刷新列表時,將刷新請求發(fā)送到Kafka。storm實時處理這些請求,在毫秒級內(nèi)完成用戶這次請求的結(jié)果集召回組裝排序。可以將組裝結(jié)果存放到用戶的redis私有隊列。用戶在刷新請求時,在redis內(nèi)獲取結(jié)果。