首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java数据处理工作流框架

Java数据处理工作流框架
EN

Stack Overflow用户
提问于 2013-01-15 13:53:05
回答 2查看 1.3K关注 0票数 1

我有一个数据流,基本上它是一个SQL表,每分钟添加30-50条记录。它需要以接近实时的速度进行处理(记录在数据库中显示后大约在10分钟内处理)。我想在这里使用一些像解决方案这样的工作流,以便更容易地处理所有记录。我需要这个解决方案具有高可用性-系统应该在不同的硬件节点上工作,并在其中一个节点崩溃时具有容错能力。基本上会发生这样的事情:

  • 将一个新记录添加到数据库中。
  • 工作流开始处理它。
  • 在处理过程中做一些事情(发送电子邮件、插入数据库等)。
  • 框架应该记住记录已经被处理过了。

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

我听说推特风暴做了一些类似的事情,但是在这里使用它不是太过分了吗?据我所知,它的主要目的是同时处理大量的数据,而我在这里根本不需要这些数据。

EN

回答 2

Stack Overflow用户

发布于 2013-01-15 13:56:26

您可以使用Apache CamelActiveMQ构建完美的可伸缩解决方案。错误的节点将抛出异常,未处理的消息可能被发送回AMQ队列,以便稍后处理(可能与其他节点一起)。

票数 1
EN

Stack Overflow用户

发布于 2013-01-15 20:33:09

请记住,Storm不执行持久化操作,所以您将以流的形式处理数据,然后在其末尾执行持久化操作(或者在中间,开始等。本质上,拓扑中的某个地方会写出它)。

当涉及到容错和保证处理时,Storm会解决您的问题。但是在30-50元组( Storm数据抽象)中,使用它确实是“过火”。但是,问题是,您可以轻松地编写您自己的系统,该系统仍然具有Storm所具有的数据处理的保证(例如,如果系统中的一个节点出现故障,但正在处理某些数据,那么该数据会发生什么情况?)我可以告诉你,建立一个拓扑并运行它是非常简单的。使用Storm抽象概念并不难(流、元组、螺栓和喷口)。如果你还没有看过,我建议你在上面看这个技术讲座:http://www.youtube.com/watch?v=biKMS3HILJ4

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14339256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档