面向Java的通用分布式调度库

面向Java的通用分布式调度库,java,distributed,schedule,Java,Distributed,Schedule,我正在寻找一些通用库来安排许多任务。该库必须提供在集群中的节点之间拆分任务、执行负载平衡和容错的能力——因此,如果某个节点出现故障,该节点的任务必须分布在其余节点上 我看了Hadoop,但看起来它对MapReduce任务很有效。在我的例子中,任务只是通知的发送者、对象状态的检查者等 Quartz似乎很棒,但它在向节点发送事件方面有多好还不清楚 还有其他选择吗?听起来像是一个使用案例。或者你也可以尝试,它几乎可以处理你想要的任何事情:)我同意Christian的观点,Akka似乎更适合。Quart

我正在寻找一些通用库来安排许多任务。该库必须提供在集群中的节点之间拆分任务、执行负载平衡和容错的能力——因此,如果某个节点出现故障,该节点的任务必须分布在其余节点上

我看了Hadoop,但看起来它对MapReduce任务很有效。在我的例子中,任务只是通知的发送者、对象状态的检查者等

Quartz似乎很棒,但它在向节点发送事件方面有多好还不清楚


还有其他选择吗?

听起来像是一个使用案例。

或者你也可以尝试,它几乎可以处理你想要的任何事情:)

我同意Christian的观点,Akka似乎更适合。Quartz的工作非常出色,但它的基本构造块是一项应该执行的工作。它不会帮助您将工作分解为可分发的组件

如果您的所有任务都可以分解为作业,那么Quartz可以帮助您安排它们,这就是它最擅长的。但是如果一个作业需要分解成子任务,那么您需要使用另一个框架

另一种选择可能是,根据您的需要。

您可以尝试一种与Java(用Java编写)集成良好的工作流调度器。 它支持您列出的功能。 这是一个开源项目,是OW2的一部分

例如,以下功能可用:

  • 工作流,即具有依赖项和结构(如循环/如果/复制)的一组任务
  • 任务在节点上执行,即在不同机器上运行的代理
  • 任务可以在节点发生故障时自动重新启动

[免责声明]我是Activeeon的一员,该公司为主动式[/免责声明]

提供专业支持。目前,可以将一个任务作为“作业”运行,但我不知道quartz如何处理分布式任务管理和在一个节点关闭时处理案例。而且它使用轮询,所以需要配置某种数据库来存储作业,这是潜在的瓶颈。我遗漏了什么吗?数据库确实是一个瓶颈。对于分布式任务,您可以配置集群,但这有一定的局限性分布式任务处理和一个节点宕机的情况如何?看起来没有现成的解决方案。@jdevelop Quatz群集模式不支持失败-过度释放读取,答案还应包含足够的信息,即使链接已断开也有用。或