共计 1062 个字符,预计需要花费 3 分钟才能阅读完成。
自动写代码机器人,免费开通
丸趣 TV 小编给大家分享一下 Tumblr 中 Redis 集群控制层有哪些应用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
Tumblr 是世界上最流行的轻博客服务,其用户量在最近的一次统计中已经达到 2090 万,超过了全球最大的博客服务 WordPress。下面丸趣 TV 丸趣 TV 小编来讲解下 Tumblr 的 Redis 集群控制层有哪些应用?Tumblr 的 Redis 集群控制层性能如何?
Tumblr 的 Redis 集群控制层有哪些应用
在 Tumblr 初期,其通知系统是由 MySQL+Memcached 的传统架构组成,但是由于通知系统庞大的添加操作,导致 MySQL 负担非常大,经常搞得 InnoDBglobaltransactionmax(1024) 都超出了。于是他们打算重新构建消息系统。首先他们分析了消息系统的应用特点:
按时间排序
唯一性,每一条消息都是唯一的
读写比大概是 60%/30%
每个用户的消息条数一定
数据按用户划分,每个用户只能读自己的消息
Tumblr 的 Redis 集群控制层架构
基于上面应用特点的考虑,Tumblr 选择了 Redis 的 sortedsets 作为其数据存储。
他们的存储方式是:
给每个用户分配一个 sortedsets,其中每一项保存一条通知
每条通知以时间戳为 score 在 sortedsets 中进行排序
超出 100 条通知后进行 trim 操作
Tumblr 的数据量:2300 万个 BLOG,每个 BLOG100 条消息,每条消息体大概 160bytes。
响应速度:大概每秒提供 7,500 次请求,每次请求的响应时间小于 5ms。
考虑到容灾性及可能快速增长的数据量,Tumblr 打算采用 preshard 的方式来架构他们的 Redis 集群,于是他们开发了 Staircar(一个提供 HTTP 服务的 Redis 集群调度管理组件)。下面是他们的通知系统架构图:
实际上在开发 Staircar 前,他们考查了一些其它的类似功能的产品,但都不能满足他们所有需求 (或者说闲杂功能过多)。
Tumblr 的 Redis 集群控制层性能如何
Staircar 由 C 语言写成,以 libevent 为网络驱动层,提供 JSON 格式的 RESTFul 接口,其性能超出了 Tumblr 工程师们的想象,其在最高峰时的响应时间也在 5ms 以下,其性能测试结果是大概能处理每秒 30,000 次左右的请求。
看完了这篇文章,相信你对“Tumblr 中 Redis 集群控制层有哪些应用”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!
向 AI 问一下细节