Java分布式应用程序 - 消息传递

时间:2012-03-24 06:38:29

标签: java protocols message distributed

我目前正在开展一个大学项目,我们正在为万维网构建内容提取器。为此,到目前为止,我们有两个模块:一个Web爬虫和一个将在两台独立机器上运行的Indexer。我们计划在我们的工作进展中添加更多模块,但是现在,我们需要在2之间进行某种形式的消息传递。

我们不确定的是:

(i)我们认为我们的应用程序不需要同步消息传递。基本上,爬网程序模块会在访问特定页面时对网页进行爬网并调用Indexer模块。那么我们应该继续选择一些异步协议(如JMS),还是使用同步协议有一些优势呢?

(ii)我们目前正在考虑使用JMS,可能使用谷歌协议缓冲区来传递2台机器之间的必要数据(URL)。这是否合适,还是有更好的选择?

我们对合适协议的主要标准是scalabilty,其次是速度。

这是我们第一次使用任何类型的分布式应用程序。所以任何帮助都会非常感激:)

谢谢:)

1 个答案:

答案 0 :(得分:1)

几年前,我在一个类似的系统上工作,网络爬虫正在寻找恶意软件网站,以添加到黑名单网站列表中(它是一家安全公司)。

我们的爬虫独立于工人。这样可以获得更好的可扩展性和性能。

抓取工具将数据放入数据库。然后,作业将定期启动并获取未处理的记录(我认为我们有一个状态列),然后传递给工作线程以便并行处理。

如果我今天要这样做,我会使用像mongodb这样的nosql数据库和一些map reduce算法。

希望这很有用。

勒凯什