看nutch的源码仿佛就是一场谍战片,而构成这精彩绝伦的谍战剧情的就是nutch的每一个从inject->generate->fetch->parse->update的环节,首先我党下派任务给优秀的地下工作者(inject),地下工作者经过一系列处理工作(告诉自己媳妇孩子要出差什么的……)以及加入自 ...
分类:
系统相关 时间:
2017-09-03 00:31:19
阅读次数:
264
前面依次看了nutch的准备工作inject和generate部分,抓取的fetch部分的代码,趁热打铁,我们下面来一睹parse即页面解析部分的代码,这块代码主要是集中在ParseSegment类里面,Let‘s go~~~ 上期回顾:上回主要讲的是nutch的fetch部分的功能代码实现,主要是 ...
分类:
系统相关 时间:
2017-09-03 00:30:22
阅读次数:
281
走了一遍Inject和Generate,基本了解了nutch在执行爬取前的一些前期预热工作,包括url的过滤、规则化、分值计算以及其与mapreduce的联系紧密性等,自我感觉nutch的整个流程是很缜密的,起码从前面两个过程看是这样的。 前期回顾:上一期主要是讲解了nutch的第二个环节Gener ...
分类:
系统相关 时间:
2017-09-03 00:19:56
阅读次数:
237
(一)安装git和Gradle Spring项目托管在github之上,基于Gradle来构建项目。所以要想搭建Spring的阅读环境,首先需要安装github和Gradle。对于一个程序员来说,github肯定都是安好了的,这里只简单介绍一下Gradle的安装。 首先,我们可以从https://g ...
分类:
编程语言 时间:
2017-09-01 13:38:07
阅读次数:
383
package pingoimport ( "bufio" "errors" "fmt" "io" "log" "net" "net/rpc" "os" "os/exec" "strings" "time")var ( errInvalidMessage = ErrInvalidMessage(er... ...
分类:
其他好文 时间:
2017-09-01 09:54:53
阅读次数:
161
package pingoimport ( "bufio" "bytes" "flag" "fmt" "io" "math/rand" "net" "net/rpc" "os" "path" "path/filepath" "reflect" "strings" "time")// Register... ...
分类:
其他好文 时间:
2017-08-31 14:44:42
阅读次数:
173
与Topic相关的代码主要位于nsqd/nsqd.go, nsqd/topic.go中。Topic的获取Topic通过GetTopic函数获取GetTopic函数用于获取topic对象,首先先尝试从topicMap表中获取,如果指定的topic存在,则直接返回topic对象。当topic不存在时需要... ...
分类:
其他好文 时间:
2017-08-31 12:55:24
阅读次数:
147
配置解析nsqd的主函数位于apps/nsqd.go中的main函数首先main函数调用nsqFlagset和Parse进行命令行参数集初始化, 然后判断version参数是否存在,若存在,则打印版本号并退出程序接下来钩住系统的syscall.SIGINT和syscall.SIGTERM消息,用来阻... ...
分类:
其他好文 时间:
2017-08-31 12:43:39
阅读次数:
152
diskQueue是backendQueue接口的一个实现。backendQueue的作用是在实现在内存go channel缓冲区满的情况下对消息的处理的对象。 除了diskQueue外还有dummyBackendQueue实现了backendQueue接口。对于临时(#ephemeral结尾)To... ...
分类:
其他好文 时间:
2017-08-31 12:42:10
阅读次数:
265
与Channel相关的代码主要位于nsqd/channel.go, nsqd/nsqd.go中。Channel与Topic的关系Channel是消费者订阅特定Topic的一种抽象。对于发往Topic的消息,nsqd向该Topic下的所有Channel投递消息,而同一个Channel只投递一次,Cha... ...
分类:
其他好文 时间:
2017-08-31 12:38:06
阅读次数:
239