格格党

手机浏览器扫描二维码访问

第72章 模擬器更新51k大章(第3页)

他盯著陈哲看了两秒,然后问了一个更细的问题:“如果让你设计一个多线程的爬虫系统,抓取一万个网页,你会怎么处理线程池的大小?”

陈哲想了想,开口:“先看瓶颈在哪。

如果是i0阻塞,线程池大小可以设大一点,一般设100到200。

但也要看目標网站的承受能力,不能把人家的伺服器打崩了。

所以要用信號量限流,或者用队列控制並发数。”

“如果伺服器返回429呢?”

“加退避。

指数退避,第一次等1秒,第二次等2秒,第三次等4秒。

如果连续失败超过三次,就把这个url丟回队列,等后面再重试。”

本又问:“那如果队列满了呢?”

“满了就阻塞生產者。

或者用有界队列,满了之后生產者等待,等消费者空出位置。”

本的眉头没有鬆开。

他又写了一行字:“你怎么保证每个线程拿到的url不会重复?”

陈哲的手指在膝盖上轻轻敲了一下。

这个问题比他预想的深一不是问怎么去重,是问分布式的去重。

“用布隆过滤器。”

他说,“每个线程拿url之前先过一遍布隆过滤器,已经爬过的就跳过。

布隆过滤器可以用redis的bitmap实现,多个线程共享。

误差率可以通过哈希函数个数和位数组大小控制,一般能接受千分之一的误判,少爬几个页面问题不大。”

本点了点头。

但他没停。

“如果布隆过滤器误判漏了一个重要页面呢?”

陈哲这次真的停住了。

他沉默了两秒,然后开口,声音很平。

“用確定性去重做备份。

布隆过滤器只是第一层过滤,漏掉的页面可以靠第二层校验,比如把url的哈希存在redis的set里,精確去重。

但set的內存占用太大,所以可以用布隆过滤器做预筛选,set做兜底。”

本盯著他,又问:“那如果set也扛不住呢?”

陈哲的手指停住了。

他看著本的眼睛,沉默了三秒。

然后他嘆了口气,声音里带著一点无奈,又好像只是很坦诚。

“这个我不知道了。”

他顿了顿,又说了一遍,语气更轻,像是自言自语。

“学艺不精。

没做过这么大的量,没碰到过这种级別的瓶颈。”

本的目光在他脸上停了两秒,像是想確认什么。

桌上安静了片刻。

提米在旁边嘖了一声,替陈哲解围:“本,你这题出得也太偏了。

分布式爬虫的去重方案,那是架构师才需要考虑的问题。

热门小说推荐
我在遮天修永生

我在遮天修永生

我在遮天修永生是有否晨曦精心创作的灵异,旧时光文学实时更新我在遮天修永生最新章节并且提供无弹窗阅读,书友所发表的我在遮天修永生评论,并不代表旧时光文学赞同或者支持我在遮天修永生读者的观点。...

太乙

太乙

奠玉群仙座,焚香太乙宫。两个宇宙的对撞吞噬,胜负的关键时刻,叶江川来到了这里。穿越到此,他时常能够来到一间变化万千的小酒馆。这个酒馆似乎有无穷的形态,...

另谋高嫁:表姑娘休想退婚

另谋高嫁:表姑娘休想退婚

关于另谋高嫁表姑娘休想退婚宋悦意与谢璟令定下了婚约。准备嫁娶之前,被谢家老夫人接过去侍疾。她明知谢家人想利用她的身份和人脉有所作为,她亦装作不知,兢兢业业为他们办好每一件事,为谢璟令铺就青云路只因她认定了这桩婚事,便会一心一意。人家却对她冷若冰霜,离我远点!她以为他性情向来如此。最后才知,人家只是对她才冷若冰霜,他有爱若眼珠子的青梅竹马,阿盈,今生今世,我只承认你是我的妻子。这辈子,我绝不负你。他和他的阿盈还暗...

荒年,系统让全家不挨饿

荒年,系统让全家不挨饿

上批逃荒路上任务多,肉和饼子一大锅。下批全家吃喝都不愁,金银珠宝拉满车。横批富可敌国。...

九州覆

九州覆

江南小镇,奇案突发。她虽是大夫,奈何临危受命仵作之职,勘验尸体。十指纤纤,本该济世活人,如今却要让死人开口,查明元凶。他是当朝恭亲王容盈,皇帝最宠爱的三皇...

每日热搜小说推荐