首页 > 解决方案 > StormCrawler spouts 中的 bucket 是什么意思?

问题描述

StormCrawler 项目中bucket的含义是什么?我在项目的不同喷口中看到了桶。例如,在基于 Solr 和 Sql 的 spout 中,我们在 spouts 中使用了它。

标签: web-crawlerstormcrawler

解决方案


存储桶只是一种从后端对数据进行分区的方法,以保证在爬行时具有良好的来源多样性。这些值通常设置为页面的主机名、域或 IP。

如果没有存储桶,spout 可能会获得同一个网站的大量 URL。FetcherBolt 强制执行礼貌,并在内部将 URL 存储在队列中,因此在最坏的情况下,它将有一个包含大量 URL 的队列并一个接一个地获取它们,并有礼貌延迟。

使用分桶,您可以从各个站点获取多个 URL 并并行获取它们。在内部,FetcherBolt 会有很多队列,每个队列中都有几个 URL。

使用 Grafana 仪表板(或 Kibana)时,您可以从 FetcherBolt 中查看内部队列和活动线程的数量。

FetcherBolt Grafana 队列

在性能方面,最好拥有尽可能多的来源。


推荐阅读