市面上的流处理引擎不止Flink一种,其他的比如Storm、SparkStreaming、Trident等,实际应用时如何进行选型,给大家一些建议参考
-
流数据要进行状态管理,选择使用Trident、Spark Streaming或者Flink
-
消息投递需要保证At-least-once(至少一次)或者Exactly-once(仅一次)不能选择Storm
-
对于小型独立项目,有低延迟要求,可以选择使用Storm,更简单
-
如果项目已经引入了大框架Spark,实时处理需求可以满足的话,建议直接使用Spark中的Spark Streaming
-
消息投递要满足Exactly-once(仅一次),数据量大、有高吞吐、低延迟要求,要进行状态管理或窗口统计,建议使用Flink