首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

memcached全面辨析–5. memcached的应用和兼容程序

2012-06-28 
memcached全面剖析–5. memcached的应用和兼容程序转载自:http://www.kuqin.com/web/20080731/12858.html?m

memcached全面剖析–5. memcached的应用和兼容程序

转载自:http://www.kuqin.com/web/20080731/12858.html

?

mixi案例研究

mixi在提供服务的初期阶段就使用了memcached。随着网站访问量的急剧增加,单纯为数据库添加slave已无法满足需要,因此引入了memcached。此外,我们也从增加可扩展性的方面进行了验证,证明了memcached的速度和稳定性都能满足需要。现在,memcached已成为mixi服务中非常重要的组成部分。

图1 现在的系统组件

服务器配置和数量

mixi使用了许许多多服务器,如数据库服务器、应用服务器、图片服务器、反向代理服务器等。单单memcached就有将近200台服务器在运行。 memcached服务器的典型配置如下:

    图2 请求数

    图3 流量

    图4 TCP连接数

    从上至下依次为请求数、流量和TCP连接数。请求数最大为15000qps,流量达到400Mbps,这时的连接数已超过了10000个。该服务器没有特别的硬件,就是开头介绍的普通的memcached服务器。此时的CPU利用率为:

    图5 CPU利用率

    可见,仍然有idle的部分。因此,memcached的性能非常高,可以作为Web应用程序开发者放心地保存临时数据或缓存数据的地方。

    兼容应用程序

    memcached的实现和协议都十分简单,因此与memcached兼容的实现有很多。一些功能强大的扩展可以将memcached的内存数据写到磁盘上,实现持久性和数据的荣誉。连载第3次?介绍过,以后的memcached的存储层将变成可扩展的,逐渐地支持这些功能。

    这里介绍几个与memcached兼容的应用程序。

    repcached
    为memcached提供复制(replication)功能的patch。
    Flared
    存储到QDBM。同时实现了异步复制和fail over等功能。
    memcachedb
    存储到BerkleyDB。还实现了message queue。
    Tokyo Tyrant
    将数据存储到Tokyo Cabinet。不仅与memcached协议兼容,还提供了HTTP访问

    Tokyo Tyrant案例

    mixi使用了上述兼容应用程序中的Tokyo Tyrant。Tokyo Tyrant是平林开发的 Tokyo Cabinet DBM的网络接口。它有自己的协议,但也拥有memcached兼容协议,也可以通过HTTP进行数据交换。Tokyo Cabinet速度相当快,虽然是一种将数据写到磁盘的实现,但速度相当快。

    mixi并不将Tokyo Tyrant作为缓存服务器,而是将它作为保存键值对组合的DBMS来使用。主要作为存储用户上次访问时间的数据库来使用。它与mixi几乎所有服务都有关,每次用户访问页面时都要更新数据,因此负荷相当高。MySQL的处理十分笨重,单独使用memcached保存数据又有可能会丢失数据,所以引入了Tokyo replication。但无需重新开发客户端,只需原封不动地使用Cache::Memcached::Fast即可,这也是优点之一。关于Tokyo Tyrant的详细信息,请参考本公司的开发blog。

    • mixi Engineers' Blog - Tokyo Tyrantによる耐高負荷DBの構築
    • mixi Engineers' Blog - Tokyo (Cabinet|Tyrant)の新機能

      总结

      到本次为止,“memcached全面剖析”系列就结束了。我们介绍了memcached的基础、内部结构、分散算法和应用等内容。读完后如果您能对memcached产生兴趣,就是我们的荣幸。关于mixi的系统、应用方面的信息,请参考本公司的开发blog。感谢您的阅读。

热点排行