在远程工作人员之间划分流程工作流



我需要开发一个Java平台来下载和处理来自Twitter的信息。基本思想是有一个集中的控制器来生成任务(基本上是id和关键字),并将这些任务发送给远程工作人员(每台计算机一个)。我需要定期收到一份状态报告,以了解任务和工人的状态。我将至少有60名工人(在不久的将来会增加十倍)。

我最初的想法是使用RMI,但我需要在两个方向上进行沟通,我对RMI感到不舒服。另一种方法是使用SSLSockets发送序列化对象,但我必须控制大量错误并添加大量代码来监视任务和工作。有些人告诉我使用Spring Batch, Gigaspaces或Quartz等框架。

你认为这个项目最好的选择是什么?到目前为止,我读了很多关于Gigaspaces的好东西,但我没有找到一个关于如何实现它的好的教程,Quartz似乎很有希望。你觉得呢?值得使用它们中的任何一个吗?

根据你的问题告诉你选择一种技术并不容易。GigaSpaces当然可以胜任这项工作,但Spring Batch也是如此。Quartz只是你问题的调度部分,而不是远程控制和工作负载的分配。

GigaSpaces是一个完全成熟的应用程序平台,可以处理并行性、高吞吐量和可伸缩性是一个因素的场景。Spring Batch当然也可以完成这项工作,但与GigaSpaces不同的是,它不是一个应用程序平台。因此,您仍然需要将应用程序部署到某个地方。

然而,GigaSpaces是一个商业产品(免费版),但也有其他框架可以帮助你,比如Storm Project (http://storm-project.net/)和Hazelcast (www.hazelcast.com)。

所以,如果不明确你的用例,很难给出一个单一的答案。这完全取决于你到底想要什么,以及你现在和将来如何使用它。

最新更新