写点什么

Spotify 的高可靠性事件分发系统概述

  • 2017-04-09
  • 本文字数:836 字

    阅读完需:约 3 分钟

Igor Maravic 在最近的 QCon London 大会上出席演讲,高度概述了Spotify 的事件分发系统和一些运维方面的关键点。他提到Spotify 的事件分发系统在设计上拥有可控延迟,能够处理由Spotify 客户端在高峰时刻每秒生成的150 万事件,且永不丢失事件。

由各种不同的客户端产生的事件有超过250 种事件类型,并且大小从几个字节到几KB 不等。有些事件对零丢失率有严格要求,其中一个例子是歌曲特许权使用费的计算,但是为了简化系统设计,Spotify 的事件分发系统对所有事件都保证100% 分发。所有事件都被存储在按小时归集的区间内,每个区间包含了特定日期某个小时的所有事件。所有的事件都被标记上到达时间,以此来保证事件被存放到相应的区间内。

Spotify 的软件工程师 Maravic 强调,在设计上保证所有事件分发还不够,还必须通过监控来验证设计需求是否被真正的满足了。Spotify 的事件分发系统是由许多微服务构成的复杂的分布式系统。为了发现系统哪部分需要改进、在突发事故发生时简便地找到真实原因以及在数据分发时存在的问题,每一个组件都需要被监控。他们总结了三种类型的监控:

  • 系统监控,用来监控系统的整体运行情况,例如 CPU 和内存的使用情况等。
  • 数据监控,用来检查数据的时效性,保证数据在要求的延迟内分发。
  • 数据丢失率监控,用来监控事件分发的完整性。为了达到这一目的,他们构建了一个工具来监控所有的输入和所有的输出,以此发现数据丢失和其他数据传输问题。

Maravic 提到,尽管他们的系统需要 7*24 小时运行,但是他们并没有一个运维团队;相反,负责开发系统的开发人员也会负责系统的运维,他认为这有益于推动优秀的开发人员成长为卓越的开发人员。

Maravic 曾写过一系列关于系统架构详情的博客,其中包括一些性能报表。

查看英文原文: Overview of the Reliable Event Delivery System at Spotify


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-04-09 19:001878

评论

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

JAVA九种排序算法详解(上)

加百利

Java 数组 排序 7月日更

2021金三银四Android大厂面试题来袭!附赠复习资料

欢喜学安卓

android 程序员 面试 移动开发

乐视界APP开发|乐视界软件系统开发

Android性能优化之启动优化实战篇!分享面经

欢喜学安卓

android 程序员 面试 移动开发

tms大时代APP开发|tms大时代软件系统开发

党建百年•融云献礼,重磅发布党建全场景通信解决方案

融云 RongCloud

简单使用HTML集成OnlyOffice

一个需求

onlyoffice

百度搜索稳定性问题分析的故事(上)

百度Geek说

AI技术在银行内部反欺诈中应用的新思路

索信达控股

人工智能 大数据 金融科技 风控 反欺诈 人工智能模型

连夺十冠!百度CVPR 2021再突破,AI实力接受国际“检验”

百度大脑

人工智能

数据结构——顺序队列

若尘

数据结构 队列

从零开始学习3D可视化之事件的常用方法

ThingJS数字孪生引擎

大前端 可视化 3D可视化 数字孪生 事件

已拿阿里P7+意向书!总结480页,超24W字2021最新一线大厂Java高级架构师面试题

Java架构追梦

Java 阿里巴巴 架构 面试

Flink 1.13,State Backend 优化及生产实践分享

Apache Flink

flink

难得一次技术面,Java程序员开发七年,突破自己终获小米offer

Java 程序员 架构 面试

GitHub上最火的7个spring cloud开源项目,对新手太友好了

北游学Java

Java 微服务 Spring Cloud 项目源码

Ubuntu 20.04安装/更新升级后进系统黑屏,屏幕亮度无法调节踩坑记

玏佾

ubuntu Ubuntu20.04 无法进入系统 驱动 屏幕亮度

2021谈一下当下最合适的Android架构,附小技巧

欢喜学安卓

android 程序员 面试 移动开发

Linux内核移植

学神来啦

云计算 Linux 运维 运维自动化

Hi.com嗨币软件系统开发资料

腾讯云,拿什么获得电商行业信赖?

ToB行业头条

#腾讯云

Flink 1.13,面向流批一体的运行时与 DataStream API 优化

Apache Flink

flink

测试开发之网络篇-网络路由

禅道项目管理

网络

店讯APP开发|店讯系统软件开发

新一代设计编排运维套件分享

鲸品堂

运维 价值

Go学习笔记之Hello World

架构精进之路

语言 Go 语言 7月日更

watt挖矿软件开发|watt挖矿APP系统开发

字节跳动异构场景下的高可用建设实践

Java

Android性能优化总结,超详细

欢喜学安卓

android 程序员 面试 移动开发

字节跳动这份面试题,你能打几分

Java 面试

maven私服搭建与插件开发

IT视界

maven nexus

Spotify的高可靠性事件分发系统概述_DevOps & 平台工程_Jan Stenberg_InfoQ精选文章