Tumblr的Redis集群控制层 Staircar

openkk 10年前
     <div id="p_fullcontent" class="detail">     <p>Tumblr是世界上最流行的轻博客服务,其用户量在最近的一次统计中已经达到2090万,超过了全球最大的博客服务WordPress。而我们今天要介绍的是Tumblr通知系统的架构,其通知系统由一个叫Staircar的轻量级HTTP服务器和其下层的大规模Redis集群组成。</p>     <p>考虑到容灾性及可能快速增长的数据量,Tumblr打算采用preshard的方式来架构他们的Redis集群,于是他们开发了Staircar(一个提供HTTP服务的Redis集群调度管理组件)。下面是他们的通知系统架构图:</p>     <p><img class="alignnone size-full wp-image-2588" title="tumblr_lollyoX2RT1qz6daf" alt="Tumblr的Redis集群控制层 Staircar" src="https://simg.open-open.com/show/b054018b0e190c6024c61f7f43c8d641.png" width="490" height="247" /></p>     <p>实际上在开发Staircar前,他们考查了一些其它的类似功能的产品,但都不能满足他们所有需求(或者说闲杂功能过多)。</p>     <h3>性能</h3>     <p>Staircar由C语言写成,以libevent为网络驱动层,提供JSON格式的RESTFul接口,其性能超出了Tumblr工程师们的想 象,其在最高峰时的响应时间也在5ms以下,其性能测试结果是大概能处理每秒30,000次左右的请求。下面是其性能测试图,从图上可以看到,其绝大部分 请求(红色区域)的响应时间在3-4ms之间:</p>     <p><img class="alignnone size-full wp-image-2589" title="staircarbench" alt="Tumblr的Redis集群控制层 Staircar" src="https://simg.open-open.com/show/3a105fb2c7ace5ab2af957f70d45735d.jpg" width="500" height="510" /><br /> <br /> </p>     <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1322727011655" target="_blank">http://www.open-open.com/lib/view/home/1322727011655</a></p>    </div>