Apache storm 关于并行性在StormCrawler中的作用

Apache storm 关于并行性在StormCrawler中的作用,apache-storm,stormcrawler,apache-storm-configs,Apache Storm,Stormcrawler,Apache Storm Configs,我目前正在从事一个基于风暴爬虫的项目。我们有一个固定的和有限的带宽从网上获取网页。对于拓扑中的不同螺栓(即50),我们有8个工作线程,其并行性提示值较大。因此,为获取页面创建了大量线程。在项目中,fetch\u错误数量的增加与并行性\u提示的增加之间是否存在任何关系?如何在Storm Crawler中确定parallelism_提示的正确值?parallelism提示不应不加区别地应用于所有螺栓 理想情况下,每个工作者需要一个FetcherBolt实例,因此在您的案例8中。正如您可能在中读到的或

我目前正在从事一个基于风暴爬虫的项目。我们有一个固定的和有限的带宽从网上获取网页。对于拓扑中的不同螺栓(即50),我们有8个工作线程,其并行性提示值较大。因此,为获取页面创建了大量线程。在项目中,fetch\u错误数量的增加与并行性\u提示的增加之间是否存在任何关系?如何在Storm Crawler中确定parallelism_提示的正确值?

parallelism提示不应不加区别地应用于所有螺栓

理想情况下,每个工作者需要一个FetcherBolt实例,因此在您的案例8中。正如您可能在中读到的或在conf中看到的,FetcherBolt处理用于获取的内部线程。这是由配置fetcher.threads.number决定的,在原型的配置中设置为50(假设这是您使用的起点)

使用太多的FetcherBolt实例会适得其反。最好改为更改fetcher.threads.number的值。如果您有50个默认线程数为50的抓取器实例,那么您将获得2500个抓取线程,这对于您的可用带宽来说可能太多了

正如我之前提到的,您希望每个工作线程有一个回迁线程,每个螺栓的内部回迁线程数取决于您的带宽。这方面没有硬性规定,这取决于你的情况

然而,我观察到的一个常量是解析螺栓与获取螺栓的比率;通常,每个取数器4个解析器可以正常工作。在部署模式下运行Storm,并检查UI中解析器螺栓的容量值。如果该值为1或更高,请尝试使用更多实例,看看它是否会影响容量

在任何情况下,并非所有螺栓都需要相同水平的平行度