`

WikiPedia 技术架构学习分享

阅读更多

WikiPedia 技术架构学习分享

网址:

 

维基百科(WikiPedia.org )位列世界十大网站,目前排名第八位。这是开放的力量。

来点直接的数据:

    * 峰值每秒钟3万个 HTTP 请求
    * 每秒钟 3Gbit 流量, 近乎375MB
    * 350 台 PC 服务器
      (数据来源 )

架构示意图如下

 

WikiPedia_arch.png Copy @Mark Bergsma
GeoDNS

在我写的这些网站架构的 Blog 中,GeoDNS 第一次出现,这东西是啥? "A 40-line patch for BIND to add geographical filters support to the existent views in BIND", 把用户带到最近的服务器。GeoDNS 在 WikiPedia 架构中担当重任当然是由 WikiPedia 的内容性质决定的--面向各个国家,各个地域。
负载均衡:LVS

WikiPedia 用 LVS 做负载均衡, 是章文嵩博士发起的项目,也算中国人为数不多的在开源领域的骄傲啦。LVS 维护的一个老问题就是监控了,维基百科的技术人员用的是 pybal.
图片服务器:Lighttpd

Lighttpd 现在成了准标准图片服务器配置了。不多说。
Wiki 软件: MediaWiki
对 MediaWiki 的应用层优化细化得快到极致了。用开销相对比较小的方法定位代码热点,参见实时性能报告,瓶颈在哪里,看这样的图树展示一目了然。另外一个十分值得重视的经验是,尽可能抛弃复杂的算法、代价昂贵的查询,以及可能带来过度开销的 MediaWiki 特性。

Cache! Cache! Cache!

 

维基百科网站成功的第一关键要素就是 Cache 了。CDN(其实也算是 Cache) 做内容分发到不同的大洲、Squid 作为反向代理. 数据库 Cache 用 Memcached,30 台,每台 2G 。对所有可能的数据尽可能的Cache,但他们也提醒了 Cache 的开销并非永远都是最小的,尽可能使用,但不能过度使用。
数据库: MySQL

MediaWiki 用的DB 是 MySQL. MySQL 在 Web 2.0 技术上的常见的一些扩展方案他们也在使用。 复制、读写分离......应用在 DB 上的负载均衡通过 LoadBalancer.php 来做到的,可以给我们一个很好的参考。

运营这样的站点,WikiPedia 每年的开支是 200 万美元,技术人员只有 6 个,惊人的高效。

参考文档:

Wikimedia architecture (PDF)
Todd Hoff 的文章

 

分享到:
评论

相关推荐

    PyPI 官网下载 | wikipedia2vecsm-0.2.1.tar.gz

    Wikipedia2Vecsm库是一个专门用于处理和学习维基百科数据的工具,它结合了Word2Vec和Doc2Vec的概念,旨在帮助用户从大规模文本数据中提取有意义的向量表示。Word2Vec是一种词嵌入模型,它可以将词汇转化为连续的向量...

    Hadoop学习网址

    - **概念介绍**: 对Hadoop的概念进行了全面的阐述,适合初学者快速了解Hadoop的基本原理和技术架构。 - **技术细节**: 提供了关于Hadoop核心技术(如HDFS、YARN等)的深入解析,便于理解其内部工作机制。 - **...

    memcached学习总结

    ### Memcached学习总结 #### 一、Memcached简介 ##### 1.1 什么是Memcached? Memcached是一款由Danga Interactive公司(LiveJournal的技术团队)所研发的分布式内存对象缓存系统,它最初是为了减轻数据库负载和...

    Struts in Action

    选择开源的方式可以鼓励更多的开发者参与到框架的开发与完善中来,同时也促进了技术交流与分享。 ##### Struts框架的核心理念 Struts框架采用了Model-View-Controller (MVC)架构模式,该模式将应用程序分为三个...

Global site tag (gtag.js) - Google Analytics