最重要的区别:Spark Streaming是微批处理,storm是按条处理。
举个栗子:现在要实现个简单的信息流(新闻视频)实时推荐系统
1、spark Streaming 可以用来:每隔10s将这10s内的用户浏览新闻、视频的日志事件进行汇总,根据用户点击的新闻、视频,根据之前协同过滤、或相似度计算得到的离线推荐结果给用户算出这段时间内浏览的内容的相关内容,保存到Hbase中,供用户下次刷新列表时使用。因为这个实时性要求没那么高,我不需要毫秒级内对用户的浏览行为进行实时反馈。
2、storm可以用来,实时组装用户的推荐结果。用户在刷新列表时,将刷新请求发送到Kafka。storm实时处理这些请求,在毫秒级内完成用户这次请求的结果集召回组装排序。可以将组装结果存放到用户的redis私有队列。用户在刷新请求时,在redis内获取结果。