【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

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

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

关注

评论

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

尝鲜 TiDB 企业管理器TEM 2.1.3 新版本

TiDB 社区干货传送门

监控

AI从入门到入门之手写数字识别模型java方式Dense全连接神经网络实现

京东科技开发者

云PBX的相关介绍

ctsxiyou

通信 通讯 云通讯

百度智能云宣布国内首家支持Llama3全系列训练推理

科技热闻

记一次某节点没有Leader的问题分析

TiDB 社区干货传送门

实践案例 故障排查/诊断 7.x 实践

十分钟学会微调大语言模型

EquatorCoco

人工智能 自然语言处理 语言模型

高效的 API 自动化测试

Liam

Jmeter 自动化测试 API测试 测试工具 API 自动化测试

加密货币交易所开发成本:2024 年完整指南

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

用了 18 个月时间,做 AI 应用从 0 到 200 万用户,从亏损到盈利(4000 字全面复盘)

陈宇明

创业 程序员 AI AI应用 AI创业

Termius for Mac(多协议远程终端管理工具)

iMac小白

Termius下载 Termius for Mac下载 Termius for Mac破解

2024腾讯广告正式开放代理 信息流广告代理加盟合作

陈老师讲创业

携手打造开放AI生态,英特尔助力千行百业数智化变革

E科讯

网站的静态资源怎么获取?

不在线第一只蜗牛

网站 静态资源

RocketMQ 存储机制浅析

字节跳动云原生计算

RocketMQ

Topaz Gigapixel AI v7.1.1激活版 mac/win

iMac小白

Uniswap丨justswap丨pancakeswap去中心化薄饼交易所系统开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

两种解法搞定Swap Nodes in Pairs算法题

EquatorCoco

算法

工程中实践的微服务设计模式

京东科技开发者

Optimism 黑客松大赛获奖名单公布

Footprint Analytics

AI gamefi Optimism

克魔助手抓包工具完整教程

什么是数据库事务?更新事务实现流程是怎样的

派大星

Java 面试题

写给职场新人|从迷茫到屡获殊荣的技术人成长之路

京东科技开发者

Kafka 线上性能调优

不在线第一只蜗牛

kafka 分布式

数据治理的五大误区与破解方法

郑州埃文科技

数据治理

高清LED显示屏在舞台应用中的惊艳效果

Dylan

活动 高清视频 LED显示屏 全彩LED显示屏 led显示屏厂家

【精选教程】四大网络抓包神器,总有一款适合你

雪奈椰子

特征融合与特征交互的区别

快乐非自愿限量之名

交互 交互原型

TiDB 版本升级常见问题处理(v6.0 及以上版本)

TiDB 社区干货传送门

版本升级 故障排查/诊断

数仓的两种轻量级数据交换格式:json与jsonb

华为云开发者联盟

数据库 华为云 华为云开发者联盟 华为云GaussDB(DWS) 企业号2024年4月PK榜

油猴Safari浏览器插件:Tampermonkey中文

iMac小白

天花板!充值运营平台限时返场!

IoTOS

物联网 IoT eSIM安全 java 技术提升

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