我有一个数据流,基本上是一个 SQL 表,每分钟添加 30-50 条记录。需要以接近实时的速度处理(记录应在出现在数据库后大约 10 分钟内处理)。我想在这里使用一些像解决方案这样的工作流来让我更容易处理所有记录。我需要这个解决方案来获得高可用性——系统应该在单独的硬件节点上工作,并且如果其中一个节点出现故障,它应该是容错的。基本上会发生的是这样的:
- 一条新记录被添加到数据库中
- 工作流开始处理它
- 作为该处理的结果做一些事情(发送电子邮件,插入数据库等)
- 框架应记住该记录已被处理
另一个要求是,如果在处理其中一个记录期间出现错误,则不应阻止框架处理其他记录。它应该只记住这个特定的记录需要重新处理。
我听说 twitter-storm 做了类似的事情,但在这里使用它不是矫枉过正吗?据我了解,它的主要目的是同时处理大量数据,我在这里根本不需要。