高并发

高并发#

  1. 数据库增加一个数字状态字段,记录当前爬取状态,未爬取、爬取中和已爬取各使用不同的值(1,-1,0),也可以记录失败了几次(失败则数字加1),在爬取端选取爬取目标时,只筛选未爬取的,或者失败次数未达上限的

  2. Redis等速度快的数据库可以暴力解决,它能及时反映当前爬取状态

  3. 通过人为设计规则保证目标选取不冲突

  4. 消息队列,类似调度器,每一个爬取端从消息队列中获取自己需要爬取的链接,同时消息队列设置每条消息只能被消费一次