写点什么

构建高可用的缓存集群的开源解决方案

  • 2014-10-27
  • 本文字数:1032 字

    阅读完需:约 3 分钟

很多应用都通过使用缓存来避免所有的请求都查询数据库,以加快系统的响应速度, Memcached 是常用的缓存服务器(现在比较流行的还有 Redis ),它一个高性能的分布式内存对象缓存系统,旨在通过缓存数据库查询结果,减少数据库的访问次数。但是在运行多个 Memcached 服务器时,往往还需要考虑其它的问题,比如缓存一致性、缓存失效等,缓存一致性是指要保证多个 Memcached 服务器中数据的一致,缓存失效的后果相对来说比较严重,当在大并发访问的场景下,如果 Memcached 缓存失效,所有请求会在同一瞬间并发访问数据库,可能会导致数据库宕机。为了保证缓存系统的稳定和高可用,很多公司都研发了相应的系统。本文汇总了 Twitter、Facebook、Youtube 在缓存方面的解决方案,供读者参考。

  1. Twitter 的 Redis/Memcached 代理服务:Twemproxy
    Twemproxy 是一个使用 C 语言编写的 Redis 和 Memcache 代理服务器,通过引入一个代理层,将应用程序后端的多台 Redis 或 Memcached 实例进行统一管理,使应用程序只需要在 Twemproxy 上进行操作,而不用关心后面具体有多少个真实的 Redis 或 Memcached 实例。当某个节点宕掉时,Twemproxy 可以自动将它从集群中剔除,而当它恢复服务时,Twemproxy 也会自动连接。由于是代理,所以 Twemproxy 会有微小的性能损失。
  2. Facebook 的 Memcached 协议路由器:McRouter
    McRouter 是一个使用 C++(主要语言,使用了大量的 C++ 11 特性)开发的基于 Memcached 协议的路由器,它是 Facebook 和 Instagram 缓存架构的核心组件,在高峰时期可以处理近 50 亿请求。McRouter 中客户端可以共享连接池,这样能减少连接的数量。McRouter 可以根据 key 前缀把客户端分配到不同的 Memcached 池中,允许以主机、池或者集群为单位设置任何请求的速率的阀值, 同时也支持限制请求的速度以减缓请求的发送速度,以保障服务质量。
  3. Youtube 的 Mysql 中间件:Vitess
    缓存层存在的初衷是减少应用与数据库的交互,以提高响应时间,与其将缓存与数据库分离,不如直接将缓存嵌入数据库中。 Vitess 是 Youtube 的开源分布式 MySQL 工具集,主要使用 Go 语言编写,已经用于 Youtube 生产环境。Vitess 支持行级缓存,并与 Memcached 进行了集成,可以有效提高带主键查询的速率,查询只有在 Memcached 中查询不到时才会进入数据库查询,而当数据被修改或者数据库表结构发生变化时,缓存数据会被删除。

另外,还有一些未开源的解决方案,比如 Box 的 Tron。同时,InfoQ 也非常关注国内相关问题的解决方案,欢迎读者在评论中留言与我探讨。

2014-10-27 06:026489
用户头像

发布了 219 篇内容, 共 141.6 次阅读, 收获喜欢 193 次。

关注

评论

发布
暂无评论
发现更多内容

比赛放榜!开源!Workshop!阿里妈妈将在国际顶会NeurIPS打出一键三连

新消费日报

免费且好用的项目管理工具有哪些?2024年精选13款

爱吃小舅的鱼

项目管理工具

Mac电脑此计算机无法读取您连接的磁盘怎么办

阿拉灯神丁

CleanMyMac X NTFS 磁盘管理器 Tuxera NTFS教程 mac系统维护 磁盘格式读写软件

国补以旧换新,快手潮电以旧换新出手节实现品牌与老铁的双向奔赴

科技热闻

强大的分子生物学软件 SnapGene 5中文激活版

理理

ProVideoPlayer for mac(pvp3多屏播放软件)

理理

WebStorm 2023激活工具下载 WebStorm中文安装包

理理

项目管理如何让项目干系人有效了解项目进度

爱吃小舅的鱼

项目管理

mac防火墙软件Little Snitch 6永久激活码 及Little Snitch下载安装包分享

理理

HarmonyOS NEXT原生应用焕新,高品质内容体验触手可及

最新动态

Cinema 4D中文破解版安装包-c4d激活补丁分享-mac/win

理理

如何同时管理项目进度和项目期望

爱吃小舅的鱼

项目进度 项目期望

鸿蒙NEXT元服务:静态卡片

zhongcx

鸿蒙元服务

2024最新整理!号称国内Java八股文天花板(终极版)首次开源

了不起的程序猿

Java 程序员 架构师 java面试 八股文

阿里巴巴内部“Spring Cloud Alibaba全彩笔记”不讲一句废话,肝就完事了

采菊东篱下

微服务

Topaz Video AI:智能重塑视频画质

理理

与 AI 同行,法护正义:百度法律智能体联合全国律师开展公益普法活动!

科技热闻

为伙伴点赞:Vector Shop 上架即登付费榜

iofomo

前端 设计师 图形图像 ui设计 绘图软件

项目计划书如何写

爱吃小舅的鱼

项目计划书

Go 并发控制:sync.Once 详解

江湖十年

Go 面试 #后端 Go 底层原理

PullTube for Mac(macOS在线视频下载器)中文激活版

理理

如何有效进行建筑施工行业的项目进度管理

爱吃小舅的鱼

项目进度管理

OceanBase 的探索与实践

vivo互联网技术

MySQL 分布式数据库 分库分表 oceanbase TiDB迁移

uml建模工具 Astah Professional for mac 完整激活版 及安装教程

理理

探索淘宝代购与集运一体化系统的便捷之旅

代码忍者

代购系统

Music Tag Editor Pro:便捷音乐标签编辑,畅享随心音乐之旅

理理

OpenTelemetry 101:面向 IT 领导者和爱好者的非技术指南

巴辉特

OpenTelemetry OTel

如何选择2024年主流甘特图软件?11款推荐

爱吃小舅的鱼

甘特图软件

Nginx流媒体服务器搭建指南

代码忍者

Trapcode Suite红巨人粒子特效套装(AE/PR插件) -mac/win

理理

构建高可用的缓存集群的开源解决方案_DevOps & 平台工程_小盖_InfoQ精选文章