gpt4 book ai didi

java - 有哪些方法可以分发异步批处理任务?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:29 25 4
gpt4 key购买 nike

我目前正在调查存在哪些 Java 兼容解决方案来满足我的要求,如下所示:

  • 基于定时器/可调度任务到批处理
  • 分布式,并由此提供水平扩展的能力
  • 有弹性,请不要使用 SPF

这些任务的性质(繁重的 XML 生成,以及向基于 Web 的接收节点的传送)意味着使用 Quartz 之类的东西在单个服务器上运行它们是不可行的。

我听说过 Hadoop 和 JavaSpaces 等技术有效地解决了问题的扩展性和弹性端。不知道这些是否非常适合我的要求,很难知道其他技术可能适合什么。

我真的很想知道这个领域的人觉得有哪些可用的选择,以及每个人如何发挥自己的优势,或者比其他人更适合某些问题。

注意:值得注意的是,调度能力可能是我们目前做事方式的后遗症。是的,有些任务应该在特定时间进行。它也被用来在没有规定时间的情况下限制吞吐量。

最佳答案

异步总是让我想到 JMS。将请求消息发送到一个队列;从池中取出一个 MessageListener 来处理它。

这可以扩展,因为队列和监听器可以位于远程服务器上。可以配置监听器线程池的大小。您可以为不同的任务设置不同的监听器。

更新:您可以通过集群和负载平衡避免单点故障。

您可以使用 ActiveMQ(开源)、JBOSS(可用的开源版本)或任何 Java EE 应用服务器免费获得 JMS,因此预算不是考虑因素。

没有锁定,因为除了使用 Java 之外,您还使用 JMS。

我建议使用 Spring 消息驱动的 POJO 来完成它。当然,社区版是开源的。

如果这不适合您,请查看 Spring BatchSpring Integration .两者都可能有用,而且社区版本是开源的。

关于java - 有哪些方法可以分发异步批处理任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1955169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com