鸟巢采集介绍

鸟巢采集是一款WEB版的网页数据采集系统,鸟巢采集拥有强大的内容采集和数据过滤功能,能将您采集的数据发布到远程服务器。鸟巢采集基于JAVA语言开发,是平台无关的可以在任何系统上运行。鸟巢采集采用分布式架构可以轻易的部署爬虫集群。

OpenShift超出配额后无法管理APP

OpenShift的存储空间只有1G,当数据库MySQL、应用Log的增长导致超出配额后,我们就不能对应用进行管理(如:重启应用、SSH登录),这时好像只有删除应用重建一条出路,

后来下载安装RHC 客户端,发现可以对应用进行管理

Windows平台RHC安装步骤
https://developers.openshift.com/en/getting-started-windows.html#client-tools

国内 gem install时需要使用http代理

gem install --http-proxy http://hkproxy.xxx.com:8888/ rhc

Windows平台需安装net-ssh

gem install --http-proxy http://hkproxy.xxx.com:8888/ net-ssh -v 2.9.3.beta1

继续阅读OpenShift超出配额后无法管理APP

OpenShift上安装鸟巢采集

  • 需要安装的环境
    Git

    https://msysgit.github.io/

    TortoiseGit

    https://code.google.com/p/tortoisegit/wiki/Download?tm=2

    Puttygen

    http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

  • 注册OpenShift账号

    https://www.openshift.com/

  • 建立OpenShift JAVA应用
    1>Create your first application now
    2>Choose a type of application
    Java>Tomcat 7 (JBoss EWS 2.0)
    3>Configure the application
    4>Next steps. select “Yes, help me get started”
    继续阅读OpenShift上安装鸟巢采集

用JAVA实现GAE的任务队列

采集系统最核心的功能就是任务队列,GAE的任务队列足够强大,可以直接作为采集队列,当我把应用从GAE环境移植到纯JAVA环境时不得不重新设计采集队列。

如下是GAE的队列配置
<queue>
<name>MEDIUM</name>
<rate>5/s</rate>
<bucket-size>8</bucket-size>
<max-concurrent-requests>4</max-concurrent-requests>
</queue>

具体实现方式:
1.用JAVA的线程池”java.util.concurrent.ThreadPoolExecutor”实现并发控制

2.用JAVA的”java.util.concurrent.ScheduledExecutorService”实现请求速率控制

3.用JAVA的队列”java.util.concurrent.LinkedBlockingQueue”作为FIFO队列,也可以实现持久化队列

流程:
添加任务到FIFO队列,计划任务每秒执行一次,从FIFO队列中取出1个或多个任务放入线程池