2.用户体验策略的四个常见的更新策略
优采云 发布时间: 2021-08-23 04:332.用户体验策略的四个常见的更新策略
四、更新策略
互联网实时变化且高度动态。网页更新策略主要是决定什么时候更新之前下载过的页面。共有三种常见的更新策略:
1.历史参考策略
顾名思义,根据页面之前的历史更新数据,预测页面未来什么时候会发生变化。一般来说,预测是通过泊松过程建模进行的。
2.用户体验策略
虽然搜索引擎可以针对某个查询条件返回大量结果,但用户往往只关注结果的前几页。因此,爬虫系统可以先更新那些实际在查询结果前几页的网页,然后再更新后面的那些网页。此更新策略还需要历史信息。用户体验策略保留网页的多个历史版本,并根据过去每次内容变化对搜索质量的影响求取平均值,并以此值作为决定何时重新抓取的依据。
3.Clustering 抽样策略
上面提到的两种更新策略都有一个前提:需要网页的历史信息。这种方式存在两个问题:一是系统如果为每个系统保存多个版本的历史信息,无疑会增加不少系统负担;其次,如果新网页根本没有历史信息,则无法确定更新策略。
该策略认为网页有很多属性,属性相似的网页可以认为更新频率相似。要计算某一类网页的更新频率,只需对该类网页进行采样,并将其更新周期作为整个类别的更新周期。基本思路如图:
五、分布式爬取系统结构
一般来说,爬虫系统需要面对整个互联网上亿万个网页。一个抓取程序不可能完成这样的任务。通常需要多个抓取程序来一起处理。一般来说,爬虫系统往往是分布式的三层结构。如图:
底层是分布在不同地理位置的数据中心。每个数据中心有多个爬虫服务器,每个爬虫服务器可能部署多套爬虫程序。这样就构成了一个基本的分布式爬虫系统。
对于数据中心内不同的抓取服务器,有多种协同工作的方式:
1.主从
主从式的基本结构如图:
对于主从模式,有一个专用的主服务器来维护要爬取的 URL 队列。它负责每次将 URL 分发到不同的从服务器,从服务器负责实际的网页下载工作。 Master服务器除了维护要爬取的URL队列和分发URL之外,还负责调解各个Slave服务器的负载。为了避免一些Slave服务器太闲或者太累。
这种模式下,Master往往容易成为系统瓶颈。
2.对等式(Peer to Peer)
等价方程的基本结构如图:
在这种模式下,所有爬取服务器之间的分工没有区别。每个爬虫服务器都可以从要爬取的URL队列中获取URL,然后得到该URL主域名的hash值H,然后计算H mod m(其中m为服务器数量,上图为一个例如,m 对于3),计算出的数字就是处理该URL的主机号。
示例:假设对于URL,计算器哈希值H=8,m=3,那么H mod m=2,那么编号为2的服务器就会抓取链接。假设此时服务器0获取到了URL,就会将URL转发给服务器2,服务器2就会抓取。
这个模型有问题。当服务器崩溃或添加新服务器时,所有 URL 的哈希余数的结果将发生变化。换句话说,这种方法的可扩展性不好。针对这种情况,又提出了另一个改进方案。这种改进的方案是通过一致性哈希来确定服务器分工。其基本结构如图所示:
一致散列对 URL 的主域名进行散列,并将其映射到 0-232 范围内的数字。并且这个范围平均分配给m台服务器,根据URL主域名hash运算的取值范围判断使用哪个服务器进行爬取。
如果某台服务器出现问题,则该服务器应该负责的网页顺时针延迟,下一个服务器会被抓取。在这种情况下,如果一个服务器及时出现问题,不会影响其他任务。
参考书目:
1.《这是核心技术的搜索引擎详解》张俊林电子工业出版社
2.《搜索引擎技术基础》刘义群等清华大学出版社