一种负载均衡分布式的爬虫方法、爬虫系统与流程

文档序号:13421552阅读:353来源:国知局
一种负载均衡分布式的爬虫方法、爬虫系统与流程

本发明涉及网络搜索领域,尤其涉及一种负载均衡分布式的爬虫方法、爬虫系统。



背景技术:

目前的分布式爬虫中各个节点都只是负责单一的任务。当某一个单一任务需要等待另一个任务完成的时候,负责处理这个单一任务的节点就可能出现空闲情况,造成大量的资源浪费,搜索速度降低。因此,必须想出一种方法解决这种资源浪费的瓶颈情况,让分布式集群机器都处于一个合理利用资源的环境,让各个机器节点都能各司其职。



技术实现要素:

本发明的目的在于提出一种可及时对所述爬虫采集节点进行调配,避免出现部分爬虫采集节点处于空载状态,提高爬虫采集节点的整体利用率,减少资源浪费的负载均衡分布式的爬虫方法、爬虫系统。

为达此目的,本发明采用以下技术方案:

一种负载均衡分布式的爬虫方法,包括主服务器和多个与主服务器互通的爬虫服务器,每个所述爬虫服务器的下游设置多个爬虫采集节点,包括系统分布式爬虫负载均衡过程:

步骤a:所述主服务器将一个爬虫任务分解成请求页面任务和分析页面任务,请求页面任务和分析页面任务之间循环交替进行;

步骤b:所述主服务器把请求页面任务和分析页面任务分发给不同的所述爬虫服务器,所述爬虫服务器再把自身接收到的任务分派给各个所述爬虫采集节点并对各个所述爬虫采集节点的节点状态信息进行监控;

步骤c:所述爬虫服务器收集并反馈各个所述爬虫采集节点的节点状态信息到所述主服务器;

步骤d:所述主服务器接收并分析所述爬虫服务器反馈的节点状态信息;若分析到所述爬虫采集节点的节点状态信息为空载状态,则所述主服务器调度任务给该爬虫采集节点。

优选地,所述步骤b中的爬虫服务器监控方法包括:

首先,各个所述爬虫采集节点执行被分派的任务,并发送自身的节点状态信息到对应的所述爬虫服务器;

然后,所述爬虫服务器对接收到的所述节点状态信息进行整理,并将整理后的所述节点状态信息实时发送至所述主服务器。

优选地,所述步骤d中所述主服务器分析调度方法包括:

首先,所述主服务器对接收到的多个所述节点状态信息进行整理;

然后,所述主服务器通过整理后的所述节点状态信息分析对应的爬虫采集节点是否处于空闲状态:

若不是则分析下一个所述节点状态信息;

若是则进一步分析所述爬虫采集节点原先负责的任务是请求页面任务还是分析页面任务:

若所述爬虫采集节点原先负责请求页面任务,则分配分析页面任务给所述爬虫采集节点;

若所述爬虫采集节点原先负责分析页面任务,则分配请求页面任务给所述爬虫采集节点。

优选地,还包括控制爬虫采集节点数量过程:

首先,所述主服务器对爬虫任务的分配情况进行检测;

若检测到所有爬虫任务均被分配,则进一步分析各个爬虫采集节点的节点状态信息:

若分析到存在若干个所述爬虫采集节点处于空闲状态或请求页面任务状态,则删除这些处于空闲状态或请求页面任务状态的爬虫采集节点;

若检测有若干个所有爬虫任务未被分配,则进一步分析各个爬虫采集节点的节点状态信息,然后将未分配的爬虫任务分析调度至处于空闲状态的爬虫采集节点;

若分析调度完后仍有若干个所有爬虫任务未被分配,则增加爬虫采集节点的数量直至所有爬虫任务均被分配为止。

优选地,还包括重复分配过程:

所述主服务器将同一个请求页面任务或分析页面任务分配给多个爬虫服务器。

优选地,使用所述负载均衡分布式的爬虫方法的爬虫系统,包括主服务器和多个与主服务器互通的爬虫服务器,每个所述爬虫服务器的下游设置多个爬虫采集节点;

所述主服务器被配置为:

将一个爬虫任务分解成请求页面任务和分析页面任务,请求页面任务和分析页面任务之间循环交替进行;

把请求页面任务和分析页面任务分发给不同的所述爬虫服务器;

和接收并分析所述爬虫服务器反馈的节点状态信息;若分析到所述爬虫采集节点的节点状态信息为空载状态,则所述主服务器调度任务给该爬虫采集节点;

所述爬虫服务器被配置为:

把自身接收到的任务分派给各个所述爬虫采集节点并对各个所述爬虫采集节点的节点状态信息进行监控;

和收集并反馈各个所述爬虫采集节点的节点状态信息到所述主服务器;

所述爬虫采集节点被配置为:

执行被分派的任务,并发送自身的节点状态信息到所述爬虫服务器。

优选地,所述爬虫服务器还被配置为:

对接收到的所述节点状态信息进行整理,并将整理后的所述节点状态信息实时发送至所述主服务器。

优选地,所述主服务器还被配置为:

对接收到的多个所述节点状态信息进行整理;

通过整理后的所述节点状态信息分析对应的爬虫采集节点是否处于空闲状态:

若不是则分析下一个所述节点状态信息;

若是则进一步分析所述爬虫采集节点原先负责的任务是请求页面任务还是分析页面任务:

若所述爬虫采集节点原先负责请求页面任务,则分配分析页面任务给所述爬虫采集节点;

若所述爬虫采集节点原先负责分析页面任务,则分配请求页面任务给所述爬虫采集节点。

优选地,所述主服务器还被配置为:

对爬虫任务的分配情况进行检测;

若检测到所有爬虫任务均被分配,则进一步分析各个爬虫采集节点的节点状态信息:

若分析到存在若干个所述爬虫采集节点处于空闲状态或请求页面任务状态,则删除这些处于空闲状态或请求页面任务状态的爬虫采集节点;

若检测有若干个所有爬虫任务未被分配,则进一步分析各个爬虫采集节点的节点状态信息,然后将未分配的爬虫任务分析调度至处于空闲状态的爬虫采集节点;

若分析调度完后仍有若干个所有爬虫任务未被分配,则增加爬虫采集节点的数量直至所有爬虫任务均被分配为止。

优选地,所述主服务器还被配置为:

将同一个请求页面任务或分析页面任务分配给多个爬虫服务器。

先通过主服务器将多个爬虫任务分配给其下属的多个爬虫服务器,所述爬虫服务器再将接收到的爬虫任务分配给其下属的多个爬虫采集节点。爬虫任务分解成请求页面任务和分析页面任务,爬虫采集节点循环交替进行请求页面任务和分析页面任务,提高分配灵活性和处理速度。对各个所述爬虫采集节点的节点状态信息进行监控和分析,从而所述主服务器可及时对所述爬虫采集节点进行调配,避免出现部分爬虫采集节点处于空载状态,提高爬虫采集节点的整体利用率,减少资源浪费。

附图说明

附图对本发明做进一步说明,但附图中的内容不构成对本发明的任何限制。

图1是本发明其中一个实施例的系统分布式爬虫负载均衡交互图;

图2是本发明其中一个实施例的爬虫服务器监控交互图;

图3是本发明其中一个实施例的主服务器分析调度流程图;

图4是本发明其中一个实施例的主服务器重复分配流程图。

其中:主服务器1;爬虫服务器2;爬虫采集节点3。

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

本实施例的负载均衡分布式的爬虫方法,如图1所示,包括主服务器1和多个与主服务器1互通的爬虫服务器2,每个所述爬虫服务器2的下游设置多个爬虫采集节点3,包括系统分布式爬虫负载均衡过程:

步骤a:所述主服务器1将一个爬虫任务分解成请求页面任务和分析页面任务,请求页面任务和分析页面任务之间循环交替进行;

步骤b:所述主服务器1把请求页面任务和分析页面任务分发给不同的所述爬虫服务器2,所述爬虫服务器2再把自身接收到的任务分派给各个所述爬虫采集节点3并对各个所述爬虫采集节点3的节点状态信息进行监控;

步骤c:所述爬虫服务器2收集并反馈各个所述爬虫采集节点3的节点状态信息到所述主服务器1;

步骤d:所述主服务器1接收并分析所述爬虫服务器2反馈的节点状态信息;若分析到所述爬虫采集节点3的节点状态信息为空载状态,则所述主服务器1调度任务给该爬虫采集节点3。

所述负载均衡分布式的爬虫方法先通过主服务器1将多个爬虫任务分配给其下属的多个爬虫服务器2,所述爬虫服务器2再将接收到的爬虫任务分配给其下属的多个爬虫采集节点3。爬虫任务分解成请求页面任务和分析页面任务,爬虫采集节点3循环交替进行请求页面任务和分析页面任务,提高分配灵活性和处理速度。对各个所述爬虫采集节点3的节点状态信息进行监控和分析,从而所述主服务器1可及时对所述爬虫采集节点3进行调配,避免出现部分爬虫采集节点3处于空载状态,提高爬虫采集节点3的整体利用率,减少资源浪费。

优选地,如图2所示,所述步骤b中的爬虫服务器2监控方法包括:

首先,各个所述爬虫采集节点3执行被分派的任务,并发送自身的节点状态信息到对应的所述爬虫服务器2;然后,所述爬虫服务器2对接收到的所述节点状态信息进行整理,并将整理后的所述节点状态信息实时发送至所述主服务器1。这样的类似事件驱动的爬虫服务器2监控方法让主服务器1不再处于被动监控的局面,让所述节点状态信息更加实时化,更加准确,确保每一个所述节点状态信息能够及时被主服务器1监控到,以便主服务器1及时对爬虫服务器2做出任务调度,不会出现资源浪费的情况。

优选地,如图3所示,所述步骤d中所述主服务器1分析调度方法包括:

首先,所述主服务器1对接收到的多个所述节点状态信息进行整理;

然后,所述主服务器1通过整理后的所述节点状态信息分析对应的爬虫采集节点3是否处于空闲状态:

若不是则分析下一个所述节点状态信息;

若是则进一步分析所述爬虫采集节点3原先负责的任务是请求页面任务还是分析页面任务:

若所述爬虫采集节点3原先负责请求页面任务,则分配分析页面任务给所述爬虫采集节点3;

若所述爬虫采集节点3原先负责分析页面任务,则分配请求页面任务给所述爬虫采集节点3。

主服务器1把收集回来的节点状态信息加以分析,假如发现了有待爬取的节点状态信息时,就会针对不同节点状态信息发布新的不同的任务指令给该爬虫服务器2,做到合理发送新的任务指令给各个爬虫服务器2,让整个系统处于满负载的情况运行,合理利用好所有的资源。

优选地,如图4所示,还包括控制爬虫采集节点数量过程:

首先,所述主服务器1对爬虫任务的分配情况进行检测;

若检测到所有爬虫任务均被分配,则进一步分析各个爬虫采集节点3的节点状态信息:

若分析到存在若干个所述爬虫采集节点3处于空闲状态或请求页面任务状态,则删除这些处于空闲状态或请求页面任务状态的爬虫采集节点3;

若检测有若干个所有爬虫任务未被分配,则进一步分析各个爬虫采集节点3的节点状态信息,然后将未分配的爬虫任务分析调度至处于空闲状态的爬虫采集节点3;

若分析调度完后仍有若干个所有爬虫任务未被分配,则增加爬虫采集节点3的数量直至所有爬虫任务均被分配为止。

控制爬虫采集节点3的数量让整个系统具备了可伸缩性,可根据实际的运维情况合理配置适当的爬虫采集节点3。对于爬虫采集节点3的数量大于爬虫任务数量的情况,可对爬虫采集节点3进行删减;对于爬虫采集节点3的数量小于爬虫任务数量的情况,可对爬虫采集节点3进行增加。从而合理调配资源,提高资源利用率。

优选地,还包括重复分配过程:所述主服务器1将同一个请求页面任务或分析页面任务分配给多个爬虫服务器2。每个爬虫采集节点3当能被很好地处理而不影响其他不相关的部分或整个系统时。所述主服务器1将同一个请求页面任务或分析页面任务分配给多个爬虫服务器2,在多个爬虫采集节点3上提供重复的服务,有助于将单个爬虫采集节点3处理失败的影响控制在最小范围内,它可以显著提高系统在出现部分故障时的可靠性。

优选地,如图1所示,所述负载均衡分布式的爬虫系统,包括主服务器1和多个与主服务器1互通的爬虫服务器2,每个所述爬虫服务器2的下游设置多个爬虫采集节点3;

所述主服务器1被配置为:

将一个爬虫任务分解成请求页面任务和分析页面任务,请求页面任务和分析页面任务之间循环交替进行;

把请求页面任务和分析页面任务分发给不同的所述爬虫服务器2;

和接收并分析所述爬虫服务器2反馈的节点状态信息;若分析到所述爬虫采集节点3的节点状态信息为空载状态,则所述主服务器1调度任务给该爬虫采集节点3;

所述爬虫服务器2被配置为:

把自身接收到的任务分派给各个所述爬虫采集节点3并对各个所述爬虫采集节点3的节点状态信息进行监控;

和收集并反馈各个所述爬虫采集节点3的节点状态信息到所述主服务器1;

所述爬虫采集节点3被配置为:

执行被分派的任务,并发送自身的节点状态信息到所述爬虫服务器2。

所述负载均衡分布式的爬虫系统先通过主服务器1将多个爬虫任务分配给其下属的多个爬虫服务器2,所述爬虫服务器2再将接收到的爬虫任务分配给其下属的多个爬虫采集节点3。爬虫任务分解成请求页面任务和分析页面任务,爬虫采集节点3循环交替进行请求页面任务和分析页面任务,提高分配灵活性和处理速度。对各个所述爬虫采集节点3的节点状态信息进行监控和分析,从而所述主服务器1可及时对所述爬虫采集节点3进行调配,避免出现部分爬虫采集节点3处于空载状态,提高爬虫采集节点3的整体利用率,减少资源浪费。

优选地,如图2所示,所述爬虫服务器2还被配置为:对接收到的所述节点状态信息进行整理,并将整理后的所述节点状态信息实时发送至所述主服务器1。所述爬虫服务器2实时发送节点状态信息,让主服务器1不再处于被动监控的局面,让所述节点状态信息更加实时化,更加准确,确保每一个所述节点状态信息能够及时被主服务器1监控到,以便主服务器1及时对爬虫服务器2做出任务调度,不会出现资源浪费的情况。

优选地,所述主服务器1还被配置为:

对接收到的多个所述节点状态信息进行整理;

通过整理后的所述节点状态信息分析对应的爬虫采集节点3是否处于空闲状态:

若不是则分析下一个所述节点状态信息;

若是则进一步分析所述爬虫采集节点3原先负责的任务是请求页面任务还是分析页面任务:

若所述爬虫采集节点3原先负责请求页面任务,则分配分析页面任务给所述爬虫采集节点3;

若所述爬虫采集节点3原先负责分析页面任务,则分配请求页面任务给所述爬虫采集节点3。

主服务器1把收集回来的节点状态信息加以分析,假如发现了有待爬取的节点状态信息时,就会针对不同节点状态信息发布新的不同的任务指令给该爬虫服务器2,做到合理发送新的任务指令给各个爬虫服务器2,让整个系统处于满负载的情况运行,合理利用好所有的资源。

优选地,所述主服务器1还被配置为:

对爬虫任务的分配情况进行检测;

若检测到所有爬虫任务均被分配,则进一步分析各个爬虫采集节点3的节点状态信息:

若分析到存在若干个所述爬虫采集节点3处于空闲状态或请求页面任务状态,则删除这些处于空闲状态或请求页面任务状态的爬虫采集节点3;

若检测有若干个所有爬虫任务未被分配,则进一步分析各个爬虫采集节点3的节点状态信息,然后将未分配的爬虫任务分析调度至处于空闲状态的爬虫采集节点3;

若分析调度完后仍有若干个所有爬虫任务未被分配,则增加爬虫采集节点3的数量直至所有爬虫任务均被分配为止。

控制爬虫采集节点3的数量让整个系统具备了可伸缩性,可根据实际的运维情况合理配置适当的爬虫采集节点3。对于爬虫采集节点3的数量大于爬虫任务数量的情况,可对爬虫采集节点3进行删减;对于爬虫采集节点3的数量小于爬虫任务数量的情况,可对爬虫采集节点3进行增加。从而合理调配资源,提高资源利用率。

优选地,所述主服务器1还被配置为:将同一个请求页面任务或分析页面任务分配给多个爬虫服务器2。每个爬虫采集节点3当能被很好地处理而不影响其他不相关的部分或整个系统时。所述主服务器1将同一个请求页面任务或分析页面任务分配给多个爬虫服务器2,在多个爬虫采集节点3上提供重复的服务,有助于将单个爬虫采集节点3处理失败的影响控制在最小范围内,它可以显著提高系统在出现部分故障时的可靠性。

以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1