搜索引擎技术之网络爬虫( 三 )


这种模式下 , Master往往容易成为系统瓶颈 。
2)对等式(PeertoPeer)
对等式的基本结构如图所示:
搜索引擎技术之网络爬虫
文章图片

文章图片
在这种模式下 , 所有的抓取服务器在分工上没有不同 。每一台抓取服务器都可以从待抓取在URL队列中获取URL , 然后对该URL的主域名的hash值H , 然后计算Hmodm(其中m是服务器的数量 , 以上图为例 , m为3) , 计算得到的数就是处理该URL的主机编号 。
举例:假设对于URLwww.baidu.com , 计算器hash值H=8 , m=3 , 则Hmodm=2 , 因此由编号为2的服务器进行该链接的抓取 。假设这时候是0号服务器拿到这个URL , 那么它将该URL转给服务器2 , 由服务器2进行抓取 。
这种模式有一个问题 , 当有一台服务器死机或者添加新的服务器 , 那么所有URL的哈希求余的结果就都要变化 。也就是说 , 这种方式的扩展性不佳 。针对这种情况 , 又有一种改进方案被提出来 。这种改进的方案是一致性哈希法来确定服务器分工 。其基本结构如图所示:
搜索引擎技术之网络爬虫
文章图片

文章图片
一致性哈希将URL的主域名进行哈希运算 , 映射为一个范围在0-232之间的某个数 。而将这个范围平均的分配给m台服务器 , 根据URL主域名哈希运算的值所处的范围判断是哪台服务器来进行抓取 。
如果某一台服务器出现问题 , 那么本该由该服务器负责的网页则按照顺时针顺延 , 由下一台服务器进行抓取 。这样的话 , 及时某台服务器出现问题 , 也不会影响其他的工作 。