2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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:093278

评论

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

利用亚马逊云科技的 Cloudify 实施 5G 网络切片

亚马逊云科技 (Amazon Web Services)

《计算机网络 PDF》搞起!

苹果看辽宁体育

大前端 后端 计算机网络

“低代码开发”与“传统IT开发”的区别是什么?

优秀

低代码

Magician 1.1.16 is released, the handler adopts annotation configuration

Magician网络编程包

Java nio

亚马逊云科技携手 Vodafone Business 向欧洲企业推广边缘计算

亚马逊云科技 (Amazon Web Services)

Pravega Flink connector 的过去、现在和未来

Apache Flink

flink

OD万基国际系统软件开发搭建

IPFS矿机多少钱1T?IPFS矿机多少钱一台?

分布式存储 IPFS fil fil矿机 ipfs矿机

乐活星球系统APP开发简介

DMDOGEplus钻石狗软件系统开发需求

Lamda(拉姆达)表达式演化过程

叫练

jdk8 JDK1.8新特性

如何实现70%丢包下音视频的高可用-信令篇

ZEGO即构

音视频 弱网 QUIC协议

架构训练营 - 模块二 - 作业

姑射仙人

架构训练营

网易云信线上万人连麦技术大揭秘

网易云信

网易 视频 音频技术

WorkPlus高端制造业数字化解决方案—中集集团

BeeWorks

企业 即时通讯 协同办公 开源软件

批量下载gitlab代码

阿呆

#GitLab

便捷赔付,自在出行!亚马逊云科技助力车险业务因“云”而变

亚马逊云科技 (Amazon Web Services)

袋鼠云:基于Flink构建实时计算平台的总体架构和关键技术点

Apache Flink

flink

捕货拼团软件系统开发详情

模块二作业:微信朋友圈高性能复杂度架构设计

Felix

速拼商城APP系统开发介绍

U评海洋软件系统开发搭建

全球对话式AI平台评估报告出炉 Gartner:百度位居领先阵营

百度大脑

人工智能 智能客服

ONE红地球/ONE Network系统APP开发费用

2021挚物· AIoT 产业领袖峰会亮点:EMQ 映云科技赋能传统工业

EMQ映云科技

物联网 AIOT 云边一体 边云协同

2021年6月券商App行情刷新及交易体验评测报告

博睿数据

博睿数据 博睿指数 券商App

智能合约DAPP系统开发技术搭建

薇電13242772558

区块链 智能合约

阿里“保姆级”教程,这份SpringBoot应用到实战手册,满满的精华

Java架构师迁哥

Polar Network/PN币挖矿APP系统开发搭建

高能预警!以阿里社招前端面试为例,详讲面对面试官到面试中到面试结束

前端依依

程序员 面试 大前端 阿里 经验分享

云原生数据库的幕后英雄—浅谈分布式数据库的计算和存储分离

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