Java数据处理工作流框架

标签 java workflow apache-storm

我有一个数据流,基本上是一个 SQL 表,每分钟添加 30-50 条记录。需要以接近实时的速度进行处理(记录出现在数据库后大约10分钟内处理完毕)。我想在这里使用一些类似解决方案的工作流程,让我更轻松地处理所有记录。我需要这个解决方案具有高可用性 - 系统应该在单独的硬件节点上工作,并且在其中一个节点出现故障时具有容错能力。基本上会发生的是这样的:

  • 数据库中添加了一条新记录
  • 工作流程开始处理
  • 处理后执行一些操作(发送电子邮件、插入数据库等)
  • 框架应该记住该记录已经被处理过

另一个要求是,如果在处理其中一条记录期间出现错误,则不应阻止框架处理其他记录。它应该记住这个特定的记录需要重新处理。

我听说 twitter-storm 做了类似的事情,但在这里使用它不是有点过分吗?据我了解,它的主要目的是同时处理大量数据,而我在这里根本不需要这些数据。

最佳答案

您可以使用 Apache Camel 和 ActiveMQ 构建完美的可扩展解决方案。故障节点将引发异常,未处理的消息可能会被发送回 AMQ 队列以便稍后处理(可能还有其他节点)。

关于Java数据处理工作流框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14339256/

相关文章:

java - 是否可以使用大小为 -1 的 ArrayList?

java - Switch 语句在 for 循环中提前结束

docker - Apache Oozie 可以运行 docker 容器吗?

apache-storm - 在尊重 maxSpoutPending 的同时关闭 KafkaSpout 中的 acking

apache-kafka - KafkaSpout 为 log4j 抛出 NoClassDefFoundError

java - Java 享元示例

java - 在 Java 中,将 longs 映射到对象的最高效(时间、内存)方式是什么?

具有多个不同 Remote 的 git 工作流程

Magento 支付工作流程和事件订单已支付

java - Storm 示例甚至可以在没有 Zookeeper、Nimbus 和 Supervisor 进程的情况下运行