The invention discloses an efficient crawler platform for multi-tenant linear scalability and its usage method. The crawler rule Spider generates Spider Jobs with large crawler tasks through Web API or Sdk API, stores Spider Jobs with large crawler tasks into Jobs large task queue, extracts Job tasks from Jobs large task queue, expands Job tasks into small crawler tasks Spider Tasks to be performed, and then crawls. Spider Tasks are stored in Tasks small task queue of RedisDB Cluster, a reallocation database cluster. There are many Task tasks to be performed in Tasks small task queue. The interface of OCP platform takes any Task task from Tasks small task queue and returns the Task task to the crawler node. The worker Cluster of the crawler cluster terminal completes the work process of the crawler node. The invention breaks through the limitation of IP resources, dynamically manages and monitors the background service crawler cluster, uses priority task scheduling algorithm and Accuracy failure detector cumulative fault detection method to timely detect whether the status of the crawler node survives, and isolates the multi-tenant crawler service.
【技术实现步骤摘要】
一种针对多租户可线性扩展的高效爬虫平台及其使用方法
本专利技术涉及网络搜索领域
,具体的说,是一种针对多租户可线性扩展的高效爬虫平台及其使用方法。
技术介绍
网络爬虫是一种按照指定规则从Internet自动化地进行数据采集的一种通用技术,爬虫系统的架构,都存在着各种各样的内部或外部问题,例如带宽限制、处理速度限制、IP封锁限制、爬虫节点不足或者过剩、爬虫节点间的通信故障检测、任务调度不合理及后台数据存储扩展性弱等。针对海量的多源数据,通常采用分布式的方式进行数据的采集和存储,而对于分布式成百上千台的爬虫节点,如何高效地调度集群节点却面临着很大的挑战。
技术实现思路
本专利技术的目的在于提供一种针对多租户可线性扩展的高效爬虫方法,突破IP资源的限制,对后台服务爬虫集群进行动态管理和监控,使用优先级任务的调度算法和Accuralfailuredetector累积故障检测法定时检测爬虫节点的状态是否存活,同时使多租户的爬虫服务隔离。本专利技术通过下述技术方案实现:一种针对多租户可线性扩展的高效爬虫平台,包括OCP平台,所述OCP平台包括数据库集群ScyllaDBCluster、重分配数据库集群RedisDBCluster、后端服务器集群BackendServerCluster、监听程序Monitor、爬虫集群终端WorkerCluster。进一步地,为了更好的实现本专利技术,所述数据库集群ScyllaDBCluster用于持久化存储数据,支持分布式线性扩展;所述重分配数据库集群RedisDBCluster用于爬虫大任务SpiderJobs和爬虫执行小任务Spi ...
【技术保护点】
1.一种针对多租户可线性扩展的高效爬虫平台,其特征在于:包括OCP平台,所述OCP平台包括数据库集群ScyllaDB Cluster、重分配数据库集群RedisDB Cluster、后端服务器集群Backend Server Cluster、监听程序Monitor、爬虫集群终端Worker Cluster。
【技术特征摘要】
1.一种针对多租户可线性扩展的高效爬虫平台,其特征在于:包括OCP平台,所述OCP平台包括数据库集群ScyllaDBCluster、重分配数据库集群RedisDBCluster、后端服务器集群BackendServerCluster、监听程序Monitor、爬虫集群终端WorkerCluster。2.根据权利要求1所述的一种针对多租户可线性扩展的高效爬虫平台,其特征在于:所述数据库集群ScyllaDBCluster用于持久化存储数据,支持分布式线性扩展;所述重分配数据库集群RedisDBCluster用于爬虫大任务SpiderJobs和爬虫执行小任务SpiderTasks的接收与分发,支持分布式线性扩展;所述后端服务器集群BackendServerCluster用于提供爬虫服务的接口以及OCP平台的Web展示接口,支持分布式线性扩展。3.根据权利要求1所述的一种针对多租户可线性扩展的高效爬虫平台,其特征在于:所述监听程序Monitor包括爬虫主机状态监听程序HostsStatus、爬虫集群状态监测程序WorkerStatus、小任务执行状态监测程序TasksStatus;所述爬虫主机状态监听程序HostsStatus根据自定义的Accuralfailuredetector累积故障检测法动态反应网络状况;所述爬虫集群状态监测程序WorkerStatus用于监控爬虫节点进程的工作状态是否正常;所述小任务执行状态监测程序TasksStatus用于监控Task任务是否执行成功。4.根据权利要求1所述的一种针对多租户可线性扩展的高效爬虫平台,其特征在于:所述爬虫集群终端WorkerCluster用于完成爬虫进程WorkerProcess的工作,支持分布式线性扩展。5.根据权利要求1所述的一种针对多租户可线性扩展的高效爬虫平台的使用方法,其特征在于:具体包括以下步骤:步骤F1:启动OCP平台,爬虫节点进行数据采集;步骤F2:新增租户Client,根据租户Client的配置需求,自动重建租户Client需要的爬虫主机Hosts和爬虫进程Workers;步骤F3:在OCP平台上为租户Client编写爬虫规则Spider;步骤F4:爬虫规则Spider通过WebAPI或者SdkAPI生成爬虫大任务SpiderJobs,并将爬虫大任务SpiderJobs存入数据库集群ScyllaDBCluster中的Jobs大任务队列中;步骤F5:启动Jobs大任务队列的展开程序,从Jobs大任务队列中取出Job任务,并将Job任务展开为待执行的爬虫小任务SpiderTasks,再将爬虫小任务SpiderTasks存入数据库集群ScyllaDBCluster;同时将爬虫小任务SpiderTasks推送到重分配数据库集群RedisDBCluster中的Tasks小任务队列中;步骤F6:爬虫Worker调用OCP平台的接口连接重分配数据库集群RedisDBCluster,OCP平台的接口从Tasks小任务队列中取出任意Task任务,并将该Task任务返回给爬虫节点;同时提升Tasks小任务队列中长时间未被取出执行的Task任务的优先级;步骤F7:爬虫节点取到Task任务后开始执行,将执行结果Result写入到数据库集群ScyllaDBCluster中;步骤F8:爬虫主机状态监听程序HostsStatus使用Accuralfailuredetector累积故障检测法定时检测爬虫节点的状态是否存活;如果不存活,则返回步骤F2;如果存活,则返回步骤F6继续取出Task任务进行执行,直到Tasks小任务队列中的所有Task任务都成功执行完毕后,结束工作。6.根据权...
【专利技术属性】
技术研发人员:辛如意,杨礼,
申请(专利权)人:成都睿码科技有限责任公司,杭州数峰科技有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。