web-crawler - StormCrawler spouts 中的 bucket 是什么意思?
问题描述
StormCrawler 项目中bucket的含义是什么?我在项目的不同喷口中看到了桶。例如,在基于 Solr 和 Sql 的 spout 中,我们在 spouts 中使用了它。
解决方案
存储桶只是一种从后端对数据进行分区的方法,以保证在爬行时具有良好的来源多样性。这些值通常设置为页面的主机名、域或 IP。
如果没有存储桶,spout 可能会获得同一个网站的大量 URL。FetcherBolt 强制执行礼貌,并在内部将 URL 存储在队列中,因此在最坏的情况下,它将有一个包含大量 URL 的队列并一个接一个地获取它们,并有礼貌延迟。
使用分桶,您可以从各个站点获取多个 URL 并并行获取它们。在内部,FetcherBolt 会有很多队列,每个队列中都有几个 URL。
使用 Grafana 仪表板(或 Kibana)时,您可以从 FetcherBolt 中查看内部队列和活动线程的数量。
在性能方面,最好拥有尽可能多的来源。
推荐阅读
- android - 为什么改造要我使用查询
- java - 将远程 PC 连接到 RabbitMQ 时出现问题,无法连接
- javascript - 使用 PHP puphpeteer 保持 facebook 登录会话
- python - 将 -profile 参数添加到 python selenium 选项时,Firefox 连接被拒绝
- angular - 新浏览器选项卡中的 Angular 应用程序不起作用
- java - 一个 Java 项目出错,而另一个运行没有错误
- rust - 如何解决 NLL 限制“不能借用 `*
` 一次多次可变" 在一个循环中? - sql - 根据变量返回不以数字结尾的值
- pdf - 使用 Inkscape(命令行)将 SVG 导出为 PDF 时更改 DPI
- azure - 如何访问安装在 Azure 中运行的托管 k8 上的 ingress-nginx 命名空间中的 Prometheus 和 Grafana?