多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Tailrank 架构-了解如何在整个徽标范围内跟踪模因 > 原文: [http://highscalability.com/blog/2007/11/19/tailrank-architecture-learn-how-to-track-memes-across-the-en.html](http://highscalability.com/blog/2007/11/19/tailrank-architecture-learn-how-to-track-memes-across-the-en.html) 是否曾经觉得 Blogsphere 拥有 5 亿个频道却没有任何信息? Tailrank 通过每小时索引超过 2400 万个 Web 日志和源来查找互联网上最热门的频道。 这是每月 52TB 的原始博客内容(不浪费),并且需要连续处理 160Mbit 的 IO。 他们是如何做到的? 这是 Tailrank.com 创始人兼首席执行官 Kevin Burton 的电子邮件采访。 凯文(Kevin)好心地花时间解释了他们如何扩展索引整个博客圈。 ## 网站 * [Tailrank](http://tailrank.com/) -我们跟踪博客圈中最热门的新闻!* [Spinn3r](http://spinn3r.com/) -您可以用自己的行为来专门研究博客蜘蛛,而不用创建自己的行为。* [凯文·伯顿(Kevin Burton)的博客](http://feedblog.org)-他的博客结合了政治和技术话题。 两者总是很有趣。 ## 平台 * 的 MySQL* 爪哇* Linux(Debian)* 阿帕奇* 乌贼* PowerDNS* 存储。* 联合数据库。* ServerBeach 托管。* 用于工作分配的工作计划系统。 ## 面试 * **您的系统是干什么的?** Tailrank 最初是一个 memetracker,用于跟踪博客圈中正在讨论的最热门新闻。 我们开始收到大量要求许可我们的爬虫的请求,大约 8 个月前,我们以 Spinn3r 的形式发货了。 Spinn3r 是自包含的搜寻器,适用于希望索引完整徽标和消费者生成的媒体的公司。 与 Spinn3r 相比,Tailrank 仍然是一个非常重要的产品,我们正在开发 Tailrank 3.0,该产品应在将来推出。 目前没有 ETA,但正在积极研究中。 * **您的系统面临哪些特定的设计/架构/实施挑战?** 我们面临的最大挑战是,我们必须处理和保持分布式系统中的数据一致的庞大数据量。 例如,我们每月处理 52TB 的内容。 必须在高度可用的存储体系结构中对其进行索引,以便出现正常的分布式数据库问题。 * **您是如何应对这些挑战的?** 我们花了很多时间来构建可以扩展和处理故障的分布式系统。 例如,我们构建了一个名为 Task / Queue 的工具,该工具类似于 Google 的 MapReduce。 它具有集中式队列服务器,可将工作单元交给发出请求的机器人。 它对于爬虫非常有效,因为速度较慢的机器以较低的速度获取工作,而更现代的机器(或性能更好的机器)要求以较高的速度工作。 这样可以轻松解决网络异构的​​主要分布式计算谬论之一。 任务/队列足够通用,我们可以实际使用它在系统顶部实现 MapReduce。 我们可能会在某个时候将其开源。 现在它有太多触角缠绕在我们系统的其他部分中。 * **您的系统多大?** 我们每小时索引 2400 万个 Weblog 和提要,并以大约 160-200Mbps 的速度处理内容。 在原始级别上,我们以大约 10-15MBps 的速度连续写入磁盘。 * **您提供多少份文件? 多少张图片? 多少数据?** 现在数据库大约是 500G。 我们预计随着我们扩大产品范围,它的增长将远远超过 2008 年。 * **您的增长率是多少?** 主要是客户功能请求的功能。 如果我们的客户想要更多数据,我们会将其出售给他们。 我们计划在 2008 年扩展集群,以索引网络和消费者生成的媒体的较大部分。 * **您的系统的体系结构是什么?** 我们将 Java,MySQL 和 Linux 用于我们的集群。 Java 是用于编写搜寻器的出色语言。 库的支持非常牢固(尽管 Java 7 在添加闭包时似乎将成为杀手))。 我们将 MySQL 与 InnoDB 结合使用。 尽管看起来我最终花费了 20%的时间来解决 MySQL 错误和限制,但我们大多数还是对此感到满意。 当然,没有什么是完美的。 例如,MySQL 确实是为在单核系统上使用而设计的。 MySQL 5.1 版本在修复多核可伸缩性锁定方面更进一步。 我最近在博客中写道,这些新的多核计算机实际上应该被视为 N 台计算机而不是一个逻辑单元:[分布式计算谬误#9](http://feedblog.org/2007/09/23/distributed-computing-fallacy-9/) 。 * **您的系统如何设计以进行扩展?** 我们使用联合数据库系统,以便我们可以在看到更多 IO 的情况下分配写负载。 我们已经在许多基础架构中以开源形式发布了很多代码,并且这些代码也可能会以开源形式发布。 我们已经开放了很多基础架构代码:* http://code.tailrank.com/lbpool-与数据库连接池一起使用的负载均衡 JDBC 驱动程序。* http://code.tailrank.com/feedparser-Java RSS / Atom 解析器,旨在优雅地支持所有版本的 RSS* http://code.google.com/p/benchmark4j/-与 Windows 的 perfmon 等效的 Java(和 UNIX)* http://code.google.com/p/spinn3r-client/-用于访问 Spinn3r Web 服务的客户端绑定* http://code.google.com/p/mysqlslavesync/-克隆 MySQL 安装和设置复制。* http://code.google.com/p/log5j/-Logger 门面,它支持 printf 样式的消息格式,以提高性能和易于使用。 * **您有多少台服务器?** 到目前为止大约有 15 台机器。 我们花了很多时间来调整我们的基础架构,因此它非常有效。 也就是说,构建可扩展的爬虫并不是一件容易的事,因此确实需要大量硬件。 我们将在 2008 年将 FAR 扩展到此范围之外,并且可能会击中 2-3 机架机器(约 120 箱)。 * **您使用什么操作系统?** 通过 Debian Etch 在 64 位 Opteron 上运行的 Linux。 我是 Debian 的忠实粉丝。 我不知道为什么更多的硬件供应商不支持 Debian。 Debian 是山谷中没人谈论的大秘密。 Technorati,Digg 等大多数大型 Web 2.0 商店都使用 Debian。 * **您使用哪个 Web 服务器?** Apache 2.0。 Lighttpd 也看起来很有趣。 * **您使用哪个反向代理?** 大约 95%的 Tailrank 页面由 Squid 提供。 * **您的系统如何部署在数据中心中?** 我们使用 ServerBeach 进行托管。 对于中小型创业公司来说,这是一个很好的模型。 他们将箱子放在架子上,维护库存,处理网络等。我们只需购买新机器并支付固定的加价。 希望 Dell,SUN 和 HP 以这种方式直接出售给客户。 现在一个。 我们希望将冗余扩展为两个。 * **您的存储策略是什么?** 直接连接的存储。 我们每盒购买两个 SATA 驱动器,并将它们设置在 RAID 0 中。 我们使用廉价数据库解决方案的冗余阵列,因此,如果单个计算机出现故障,则会在另一个盒中复制数据。 便宜的 SATA 磁盘决定了我们的工作。 它们便宜,商品且快速。 * **您的网站是否有标准 API?** Tailrank 每页都有 RSS feed。 Spinn3r 服务本身就是一个 API,我们有关于该协议的大量文档。 研究人员也可以免费使用它,因此,如果您的任何读者正在攻读博士学位并通常从事研究工作,并且需要访问我们喜欢的博客数据以帮助他们。 我们已经有使用 Spinn3r 在华盛顿大学和马里兰大学(我的母校)的博士学位学生。 * **您使用哪个 DNS 服务?** PowerDNS。 这是一个很棒的产品。 我们仅使用 recursor 守护程序,但它是 FAST。 虽然它使用异步 IO,所以它实际上并不能在多核盒子上的处理器之间扩展。 显然,有一种破解方法可以使其跨内核运行,但这并不是很可靠。 AAA 缓存可能已损坏。 我仍然需要研究这个。 * **您欣赏谁?** 唐纳德·克努斯是男人! * **您如何考虑将来更改架构?** 我们仍在努力完善完整的数据库。 MySQL 容错和自动升级也是一个问题。 <cite>MySQL 故障 容忍度和自动升级也是一个问题。</cite> 当数据库对您如此重要时,您应该将其像已存在可行替代品的任何其他基础结构商品一样对待: 吞咽困难,然后小便达到最佳状态。 “最好”在旁观者眼中,因此我将其留给读者。 中文 memeTracker 网站: [http://www.onejoo.com/](http://www.onejoo.com/) 监视超过 500 万博客,论坛和新闻。 您如何使用 InnoDB 支持全文搜索? -伊沃 [http://www.web20friends.net](http://www.web20friends.net) 嗨,伊沃 我们不在 innodb 上使用全文本搜索。...实际上,我们将数据快照加载到 myisam 中,并将其用于全文本搜索。 对于小型文档集,MySQL 全文搜索在某种程度上是可取的。 tailrank feedparser Wiki 为何以票证的形式充满色情链接? [http://code.tailrank.com/feedparser/report/6](http://code.tailrank.com/feedparser/report/6) 现在,世界上大多数参与计算环境的名人都在使用 MYSQL。 我猜它是从它自己的体系结构中获得流行的。 ----- [http://underwaterseaplants.awardspace.com“](<a rel=) >海洋植物 [http://underwaterseaplants.awardspace.com/seagrapes。 htm“](<a rel=) >海葡萄... [http://underwaterseaplants.awardspace.com/seaweed.htm”](<a rel=) >海藻