我目前正在调查存在哪些Java兼容解决方案以满足我的要求,如下所示:
这些任务的性质(繁重的XML生成以及向基于Web的接收节点的交付)意味着使用Quartz这样的东西在单个服务器上运行它们是不可行的。
我听说过像Hadoop和JavaSpaces这样的技术,它们有效地解决了问题的扩展和弹性问题。不知道这些是否非常适合我的要求,很难知道其他技术可能适合哪些。
我真的很想知道这个空间里的人们认为什么是可用的选择,以及每个人如何发挥自己的优势,或者比其他人更好地适应某些问题。
NB:值得注意的是,进度能力可能是我们目前做事的一个宿醉。是的,有些任务应该在某些时候进行。当没有设定时间的授权时,它也被用于限制吞吐量。答案 0 :(得分:2)
异步总是让我想起JMS。将请求消息发送到队列;从池中提取MessageListener来处理它。
这可以扩展,因为队列和侦听器可以位于远程服务器上。可以配置侦听器线程池的大小。您可以为不同的任务使用不同的侦听器。
更新:您可以通过群集和负载平衡来避免单点故障。
使用ActiveMQ(开源),JBOSS(可用的开源版本)或任何Java EE应用服务器,您可以免费获得JMS,因此不需要考虑预算。
没有锁定,因为你使用的是JMS,除了你正在使用Java这一事实。
我建议使用Spring消息驱动的POJO。当然,社区版是开源的。
如果不适合您,请查看Spring Batch和Spring Integration。这两个都可能有用,社区版本是开源的。
答案 1 :(得分:1)
你有没有看过GridGain?我很确定它不能解决调度问题,但你可以扩展它,它就像“魔术”一样,要执行的代码被发送到节点并在那里执行。当您没有要发送的数据库连接(或任何不可序列化的连接)时,它可以正常工作。