我目前正在研究存在哪些与Java兼容的解决方案来满足我的需求,如下所示:
这些任务的本质(大量的XML生成,以及向基于web的接收节点的传递)意味着使用Quartz之类的东西在单个服务器上运行它们是不可行的。
我听说过像Hadoop和JavaSpaces这样的技术,它们有效地解决了问题的扩展和恢复能力。不知道这些是否非常适合我的需求,很难知道哪些其他技术可能适合我的需求。
我真的在想,在这个领域里,人们觉得有什么可供选择的,以及每个人如何发挥自己的优势,或者比其他人更适合某些问题。
注:值得注意的是,日程安排能力也许是我们目前做事方式的一个后遗症。是的,有些任务应该在某些时候完成。它还被用于在没有规定时间的情况下控制吞吐量。
发布于 2009-12-23 20:38:37
异步总是让我想起JMS。将请求消息发送到队列;从池中提取一个MessageListener来处理它。
这可以扩展,因为队列和侦听器可以位于远程服务器上。可以配置侦听器线程池的大小。对于不同的任务,您可以有不同的侦听器。
更新:通过集群和负载平衡,您可以避免出现单点故障。
您可以免费使用ActiveMQ (开放源码)、JBOSS (可提供的开源版本)或任何Java应用服务器来获取JMS,因此预算是不需要考虑的。
而且没有锁定,因为除了使用Java之外,您还在使用JMS。
我建议使用Spring消息驱动的POJO。当然,社区版是开源的。
如果这并不适用于您,请查看弹簧批和弹簧集成。这两个版本都可能很有用,而且社区版本是开源的。
发布于 2009-12-23 21:10:05
你查过GridGain了吗?我非常肯定它不会解决调度问题,但是您可以扩展它,这就像“魔术”一样发生,要执行的代码被发送到一个节点,并在其中执行。当您没有要发送的数据库连接(或任何不可序列化的内容)时,它可以正常工作。
https://stackoverflow.com/questions/1955169
复制相似问题