写点什么

Flickr 选择使用 Sentinel 来保证 Redis 的高可用性

  • 2014-08-19
  • 本文字数:1043 字

    阅读完需:约 3 分钟

Flickr 近期宣布,针对他们的线下任务处理子系统中的 Redis ,已经部署了 Sentinel ,用于自动化其故障转移操作。但他们对 Redis 的一致性问题感到了担忧。

去年, Factual 的工程师及分布式系统专家 Kyle Kingsbury ,对 Redis 的一致性问题进行了研究,并将结果发表在了他的 Jespen 系列连载中。在文章中,他表示能够使用 Redis 和 Sentinel 构造出这样一个场景:在 Redis 通知我们已成功的写请求中,有 56% 的写请求事实上是被丢弃了。Kingbury 表示,这个令人担心的结果是由 Sentinel 系统中的两个问题导致的。

第一个问题,要注意在网络分割开始时,所有客户端都会丢失写请求的数据。因为当网络出现故障时,客户端都往 n1 节点写数据。由于之后 n1 退级,不再是主节点,在这个时间窗口内写入的数据将全部丢失。第二个问题是由 split-brain 引起的:在网络分割现象消失之前,n1 和 n5 都成为了主节点。一些客户端可能可以成功地写入数据,而其他的将丢失所写的数据,这取决于客户端与哪个节点进行交互。

Redis 的作者 Salvatore Sanfilippo 对这篇文章作出了回复。他确认了这个问题的存在,但也同时指出:丢失数据量最小化并不是 Sentinel 的设计目标。

需要明确的是,这条指责是正确的。它表明了 Sentinel 并不擅长处理在网络分割中将丢失数据量最小化这个复杂的问题,这一点原本就不是 Sentinel 的设计目标。况且,在用户通过自己所写的脚本来处理故障转移的案例中,99% 的案例在故障检测和故障转移处理过程上,远远逊于 Sentinel。

尽管 Flickr 知道这些问题,但由于起初他们为自己的线下任务处理子系统制定了过于自信的 SLA 目标,他们开始转而使用 Sentinel。在注意到他们的手动故障恢复流程不可能帮助他们达到 99.995% 正常运行时间的目标后,他们寻找了其他解决方案,并选定了 Sentinel。

在对 Sentinel 系统及它的配置参数进行重要的测试之后,他们能设计出一种在 4~6 秒钟内自动进行故障转移的方法。从而使得他们可以达到之前设定的正常运行时间的目标。在测试过程中,他们也能重现 Kingsbury 所发现的场景。但是,Flickr 工程师 Richard Thorn 和 Shawn Cook 解释道:“尽管我们相信我们的生产环境会受到 split-brain 的影响,但我们确信所获得的好处远大于带来的风险”。

参考英文原文: Flickr Chooses Sentinel for Highly Available Redis


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-08-19 04:093305

评论

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

学术顶会再突破!计算平台MaxCompute论文入选国际顶会VLDB 2021

阿里云大数据AI技术

网络攻防学习笔记 Day118

穿过生命散发芬芳

网络安全 8月日更

GaussDB(for Redis)与原生Redis的性能对比

华为云数据库小助手

redis GaussDB GaussDB ( for Redis ) 华为云数据库

工业互联网如何加速释放赋能价值?工业智能是关键

云计算

我为什么坚持六点起床

月哥

VMware中安装的Ubuntu启动时出现A start job is running for raise network interfaces...

Mike

仓储管理系统开发介绍

(王经理)专业app小程序开发

ipfs矿机怎么买?ipfs矿机怎么获取?

ipfs矿机怎么买 ipfs矿机怎么获取

笔记分享 -- 弱网下的极限实时视频通信

声网

音视频 端到端 极限视频通信 弱网

价值连城 图灵奖得主Yann LeCun 杨立昆的采访 给AI从业者的建议 John 易筋 ARTS 打卡 Week 61

John(易筋)

ARTS 打卡计划

区块链蕴含的变革力

CECBC

区块链溯源:重塑咖啡产业链

CECBC

阿里第七次更新的Java面试突击宝典,已累计拿到759份Offer

Java 程序员 架构 面试 后端

【虚拟机专栏】熟悉的新朋友 - 链上JVM

趣链科技

区块链

命中率高达87%,GitHub收费下载超过28W次的Java面试题库外泄

Java架构师迁哥

术,路,心:陈天桥的大脑行旅

脑极体

解析区块链技术如何帮助企业加速数字转型?

CECBC

极光开发者周刊【No.0827】

极光GPTBots-极光推送

24位出品人已确认,开放原子全球开发者峰会(OADC)分论坛速览(更新中)

开放原子开源基金会

fil矿机怎么买?fil矿机厂商最强哪家?

分布式存储 IPFS Filecoin filecoin挖矿 filecoin矿机

【得物技术】得物App Android Crash治理演进

得物技术

发展 日志 进程 Crash 崩溃

审计挖掘之CNVD通用漏洞

网络安全学海

黑客 网络安全 信息安全 WEB安全 漏洞挖掘

ARM工控主板比X86工控主板好吗?

双赞工控

从350ms到80ms,揭秘阿里工程师 iOS 短视频优化方案

阿里云CloudImagine

ios 短视频 视频 视频处理 视频流

ipfs矿机怎样选?ipfs矿机多少钱一台?

分布式存储 IPFS ipfs挖矿 ipfs矿机 filecoin挖矿

强强联合!北鲲云与宝德就打造混合云HPC解决方案达成战略合作

北鲲云

好身体是吃出来的

石云升

健康 8月日更

“腾讯待办”小程序正式发布!初次见面,请多指教。

03. AI就是与人类思考方式相似的计算机程序:从仿生学看人工智能的定义

Databri_AI

人工智能

ZEGO 教程 | RTC + AI 视觉的最佳实践(移动端)

ZEGO即构

AI RTC 滤镜

Python代码阅读(第19篇):合并多个字典

Felix

Python 编程 Code Programing 阅读代码

Flickr选择使用Sentinel来保证Redis的高可用性_语言 & 开发_Benjamin Darfler_InfoQ精选文章