Web爬虫可以与位于不同机器上的多个Worker一起工作,所以看起来Message Queue作为集成层应该很好。如何在Web爬虫中使用Message Queue?
虽然问题是我不明白该怎么做。
没有MQ体系结构看起来像下面这样 - 有一个共享数据库,Worker在数据库中查找下一个要处理的URL,处理它并更新数据库。
但是,如何用MQ做到这一点?假设要处理的站点的url存储在数据库中,我应该将它们全部放入Message Queue for Workers使用吗?
如果有100 000个这样的网址和100个这样的网站会怎么样?我应该一次将100 000 000个对象放入Message Queue中吗?或者应该有某种背压 - 比如说 - 我把100个网址放在队列中,然后等待所有处理完成,然后再放100个等等?
或者,这样的用例可能不太适合Message Queue?