crawler4j源码分析(二)Frontier

这节我们来看看crawler4j中的URL管理机制--Frontier的设计和实现
摘要由CSDN通过智能技术生成

         这节我们来看看crawler4j中的URL管理机制--Frontier的设计和实现。

         总体上来讲,crawler4j的Frontier提供了如下一些功能,大部分都是URL队列应该有的基本功能:

        (1)URL的获取,URL的保存,以及删除。

        (2)不同类型URL的统计,如放入队列的URL总数和已处理的URL总数

        (3)恢复上次爬取中没有处理完的URL(已经从URL队列中取出,但还没有处理)

        URL的保存使用了oracle 的je数据库,其内部采用BTree结构实现,支持重复键,事务和锁机制,因此,不仅查询和插入都比较块,并且支持高的并发性,同步什么都不是问题。在crawler4j中除了URL之外,还有实现URL去重的结构,记录正在处理的URL以及计数器都是通过JE来实现。

         首先谈谈第一个和第二个功能

         所有即将爬取的URL都放在一个待爬取队列WorkQueues中,这个队列内部的URL按照如下顺序排列:优先级,深度,docID,即:优先级越高,深度越小,docID越小

的URL越早被爬取。这里的优先级用户可以自己基于某个准则指定,深度为当前URL在整个爬取过程中被发现的层次,docID为被发现的顺序。由此可知,当一个新的URL被插入到队列中后,其所处位置也就已经确定,这个插入操作是由JE内部来保证的,在JE内部每个URL都以字节来存放,JE会按照上述三元组构成的KEY来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值