写点什么

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

  • 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:026446
用户头像

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

关注

评论

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

GitHub上疯传数万次的蚂蚁内部绝密分布式高可用算法笔记太香了

程序员高级码农

Java 编程 程序员 分布式 算法

Lightroom Classic 2025 for Mac(LRC2025)v14.1.1中文激活版

小玖_苹果Mac软件

NAS极速远程访问!贝锐花生壳推出飞牛fnOS专属内网穿透服务

贝锐

私有云 内网穿透

中昊芯英荣登2024创业邦100未来独角兽榜单

科技热闻

AI视频无损放大Topaz Video AI for Mac v6.0.0激活版

小玖_苹果Mac软件

Native Instruments Maschine for Mac(全球最全面的采样器)v3.0.1激活版

小玖_苹果Mac软件

MouseBoost PRO for Mac 鼠标右键助手专业版下载

小玖_苹果Mac软件

iBarcoder v3.16.0免激活版 专业的条形码生成器

小玖_苹果Mac软件

AI-Native的路要怎么走?一群技术“老炮儿”指明了方向

Alter

如何运用获得京东商品详情API接口搬运商品到自己的电商平台?(一篇文章全搞定)

科普小能手

数据挖掘 淘宝 电商 API 接口 API 测试

京东商品详情数据接口丨京东API接口指南

tbapi

京东API接口 京东商品详情接口

阿里P8面试官让我吃透这份10W字java面试题终于可以拿java高级岗

程序员高级码农

Java 编程 程序员 java面试 Java面试题

Axure RP 9 for Mac(交互原型设计软件)v9.0.0.3746中文激活版

小玖_苹果Mac软件

2024冬季FORCE大会,火山引擎边缘云全面展示边缘云 + AI 产品技术方案

火山引擎边缘云

机器人 火山引擎 AI 大底座 具身智能 边缘智能

中化信息与枫清科技深化合作:共探“AI+”产业新生态

Fabarta

数智化转型 #大模型

SD-WAN在企业组网中的重要作用

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SDWAN SD-WAN国际专线

复旦大学与华为共建鲲鹏昇腾科教创新孵化中心 着力科研创新与人才培养

Geek_2d6073

Final Draft 13 for Mac激活版 剧本写作软件

小玖_苹果Mac软件

QLab Pro for Mac 激活版 音频编辑处理工具

小玖_苹果Mac软件

企业组网解决方案与常用技术解析

Ogcloud

SD-WAN 企业组网 企业网络 SD-WAN组网 SD-WAN服务商

FabFilter Total Bundle 2024 for Mac(音频插件合集)v2024.12.16直装激活版

小玖_苹果Mac软件

ON1 Photo RAW 2025 .1 for Mac(照片编辑器)

小玖_苹果Mac软件

拦截烂SQL,解读GaussDB(DWS)查询过滤器过滤规则原理

华为云开发者联盟

数据库 GaussDB(DWS) #SQL

博客写作软件 MarsEdit mac v5.1.4激活版

小玖_苹果Mac软件

Python绘制七段数码管字母:从理论到实践

快乐非自愿限量之名

Python

如何看待Java面试造火箭工作拧螺丝?

了不起的程序猿

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

RTX 4090 显卡,除了打游戏还能做什么?

Finovy Cloud

gpu 显卡 云电脑

中昊芯英入选工信部“人工智能赋能新型工业化典型应用案例”

科技热闻

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