Hunter的大杂烩

七月 27, 2008

搜索爬虫

类归于: 技术话题 — hunter @ 3:22 下午

周末看了几个爬虫(Arachnid、arale、heritrix)的原理,感觉heritrix的架构是其中比较合理和有弹性的,就是太复杂了,除了core framework外,还有写了一个web server,及在此之上搭建了一个控制台,按它自己的说法,heritrix是一个完整的crawler,可以通过配置就让它为实际业务服务。其中core framework里面,还有很多东西可能为了追求性能而自己DIY的,看的头晕… 

参考heritrix的架构,写了一个简单的爬虫,性能还行,并发5个链接,在一分钟内爬了上千个链接下来,如果不做频率限制,怕把对方网站拖死了,呵呵。

heritrixæ¡?æ?¶ç»?æ??

btw: 发现写java代码确实快,API多,开源库也多,总共用了2个库(commons-httpclient-3.0.1.jar, jericho-html-2.3.jar),总共不到500行,就实现了页面url和用户名抽取两个功能,并能根据url和设定的深度进行递归爬。

代码下载

七月 15, 2008

Federation at Flickr: Doing Billions of Queries Per Day

类归于: 架构 — hunter @ 11:28 下午

近期highscalability上有一篇文章,介绍了由flickr的数据库高人撰写的flicker的数据库设计,作者说,如果你想知道自己的sharding是否做对,一定要拜读该文。(ppt的title中赫然见到”Federation”一词,难道又会创造一个Federation热吗?) (另,这个ppt里其实没有很多有用的内容,可能更多是通过口头表达的)

flickr架构就不多说了,可以参见highscalability.com的文章 dbanotes上的介绍

ppt主要介绍flickr 遇到的几个问题,以及是如何解决的:

1. mysql master-slave 拓扑问题

将数据sharding分布

建立master-master ring来解决写入的问题

 – 据作者说是为了解决写入点的问题,但是master-master ring可能会使得数据库的写请求量过大,影响读请求的服务

(全文…)

分区 vs 联邦 vs shard

类归于: 架构 — hunter @ 10:57 下午

from: http://lethargy.org/~jesus/archives/95-Partitioning-vs.-Federation-vs.-Sharding.html
A partition is a structure that divides a space into two parts.
分区是指将一个数据结构在空间上存储为多个部分;
A federation is a set of things (usually states or regions) that together compose a

centralized unit but each individually maintains some aspect of autonomy.
联邦指的是若干个数据库各自根据需要保存不同的信息,并组成统一的对外平台。每个存储单位
是独立的。
Federation 顾名思义,更多的是不同类型数据的部署方案,比如付费用户和非付费用户的存储
集群;
(全文…)

WordPress 所驱动