Staircar

Tumblr的Redis集群控制层
授权协议 未知
开发语言 C/C++
所属分类 数据库相关、 NoSQL数据库
软件类型 开源软件
地区 不详
投 递 者 谢和颂
操作系统 Linux
开源组织
适用人群 未知
 软件概览

Tumblr是世界上最流行的轻博客服务,其用户量在最近的一次统计中已经达到2090万,超过了全球最大的博客服务WordPress。而我们今天要介绍的是Tumblr通知系统的架构,其通知系统由一个叫Staircar的轻量级HTTP服务器和其下层的大规模Redis集群组成。

考虑到容灾性及可能快速增长的数据量,Tumblr打算采用preshard的方式来架构他们的Redis集群,于是他们开发了Staircar(一个提供HTTP服务的Redis集群调度管理组件)。下面是他们的通知系统架构图:

实际上在开发Staircar前,他们考查了一些其它的类似功能的产品,但都不能满足他们所有需求(或者说闲杂功能过多)。

性能

Staircar由C语言写成,以libevent为网络驱动层,提供JSON格式的RESTFul接口,其性能超出了Tumblr工程师们的想 象,其在最高峰时的响应时间也在5ms以下,其性能测试结果是大概能处理每秒30,000次左右的请求。下面是其性能测试图,从图上可以看到,其绝大部分 请求(红色区域)的响应时间在3-4ms之间:

 相关资料
  • Redis 集群(Redis Cluster) 是 Redis 提供的分布式数据库方案。 既然是分布式,自然具备分布式系统的基本特性:可扩展、高可用、一致性。 Redis 集群通过划分 hash 槽来分片,进行数据分享。 Redis 集群采用主从模型,提供复制和故障转移功能,来保证 Redis 集群的高可用。 根据 CAP 理论,Consistency、Availability、Partition

  • 问题内容: 有人知道Redis复制和Redis分片之间的区别吗? 它们有什么用?Redis将数据存储在内存中,这如何影响复制/分片? 可以同时使用它们吗? 问题答案: 分片几乎是复制的对立面,尽管它们是正交的概念并且可以很好地协同工作。 分片,也称为分区,是通过密钥对数据进行拆分。复制(也称为镜像)是复制所有数据。 分片有助于提高性能,减少任何一种资源的命中和内存负载。复制对于获得高可用性的读取很

  • Sentinel 提供了一个 Envoy Global Rate Limiting gRPC Service 的实现 sentinel-cluster-server-envoy-rls,借助集群限流 token server 来为 Envoy 服务网格提供集群流量控制的能力。 Note: You can refer to here for the English version. 构建 若要构建可

  • 为 Redis 自带的主从复制提供主从切换方案。 2. TwenProxy 3. Redis Cluster 4. Codies 参考资料 Redis 集群方案

  • 我知道redis sentinel是在多个redis实例之间配置HA(高可用性)的一种方式。正如我所看到的,在任何给定的时间,都有一个redis实例主动地为客户机请求服务。另外还有两个服务器处于待机状态(等待发生故障,因此其中一个可以再次运行)。 是资源浪费吗? 是否有更好的方法充分利用现有资源? Redis集群是Redis Sentinel的替代方案吗? 我已经查了redis的sentinel和

  • 本文向大家介绍Redis集群策略相关面试题,主要包含被问及Redis集群策略时的应答技巧和注意事项,需要的朋友参考一下 redis包含三种集群策略 主从复制 哨兵 集群

  • 我已经使用docker建立了zookeeper和kafka 5.4.0版的基本三服务器集群。对于zookeeper和kafka,我指定了所有三个引导服务器。我正在尝试以一种允许一台服务器宕机且集群仍能正常运行的方式进行设置。我试图让控制中心工作,但我遇到了问题。首先,似乎只有一台服务器能够成功运行control center,而且只有当我指定它运行的引导服务器时,而不是所有三台服务器。如果我尝试在

  • 我有一个redis集群,有主服务器、从服务器和3个哨兵服务器。主从映射到dns名称node1-redis-dev.com、node2-redis-dev.com。redis服务器版本为2.8 我在application.properties文件中包含以下内容。 但是,当我检查StringRedisTemplate时,在JedisConnectionFactory的hostName属性下,我看到的是