多机多进程采集

采集是一把双刃,对别人来说,就好比偷人家的东西,所以程序员还是需要有德心的。下面介绍一下多机多进程采集:

主要分为:初始脚本(添加crontab),dnsmasq(优化域名解析),下载端,分析端,队列,TTserver(TokyoCabinet或redis),数据库(mysql),进程监控;

流程:

人工添加排行榜列表

第1步:初始化时读取列表到下载队列(crontab),排行榜节点为1。

第2步:下载端:守护进程读取分析队列的链接,经过dnsmasq解析抓取页面,然后将内容存入TTserver,再将读取的队列内容+TT键值存入分析队列(下载端之curl的万能)

第3步:分析端:守护进程读取下载队列的内容,根据内容获得TT内相应的值,然后清空TT,进入1节点的php程序,对相应排行榜内容进程分析(DOMxpath或正则),分析后的作品封面链接存入下载队列,作品封面链接节点为2。

第4步:同2步;

第5步:如3步,但进入的是2节点php,将封面页信息存入数据库(创建作品,更新作品,创建作者,分类等),获得作品章节列表页,存入下载队列,作品章节列表页节点为3。

以此类推,直到文章内容(插入,更新),最后一个节点为修复节点,章节列表页分析后要检查更新的章节及是否自动修复。

注:进程监控,在每次初始化前执行shell查看下载端和分析端进程数量是否正确,并做相应调整,脚本请查看shell进程监控

为什么说它是多机多进程采集呢?

队列、TT可以运行在一个服务器上,但分析端和下载端可以运行在多个机器上,也可以多进程运行(因为队列的特性),链接队列和TT都可以用IP+端口+名字,数据库也类似。(有下载端的服务器最好装上dnsmasq)

Comment (1)

  1. 石灰竖窑

    有日子没更新了啊,赶紧更新

    Reply

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注