快手、孩子王、华为等专家分享大模型在电商运营、母婴消费、翻译等行业场景的实际应用 了解详情
写点什么

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

评论

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

龙蜥专场精彩回放来了!10位技术大咖、242位开发者相聚

阿里云基础软件团队

《原则》(三)

Changing Lin

拍乐云推出业内首个「线上美术教学音视频方案」,打造极致互动体验

拍乐云Pano

官宣!禅道与极狐(GitLab)达成深度合作,携手推进开源开放DevOps生态发展

禅道项目管理

项目管理 DevOps gitlab

大数据好书推荐

五分钟学大数据

从零开始学习3D可视化之控制对象(2)

ThingJS数字孪生引擎

可视化 数据化 3D 3D可视化

defi流动性系统开发案例详情丨defi流动性源码功能

系统开发咨询1357O98O718

系统性思维 系统之美1

张老蔫

28天写作

OpenYurt v0.4.0 新特性发布:高效地管理边缘存储资源

阿里巴巴云原生

云原生

如何设置HashMap初始化大小

Hex

后端 hashmap

蓝海战略 - 如何设计与众不同的价值曲线

石云升

战略思考 职场经验 6月日更

阿里P8熬了一个月肝出这份32W字Java面试手册,在Github标星68K+

Java 程序员 面试

defi流动性挖矿系统开发案例分析,defi流动性挖矿现成源码

系统开发咨询1357O98O718

python使用命令行传入参数

卤蛋翔

6月日更

联邦计算在百度观星盘的实践

百度Geek说

新大陆!阿里P9整理出:Java架构师“成长笔记”共计23版块

Java架构师迁哥

OGA 联盟正式成立!禅道作为理事单位助力共建开源生态!

禅道项目管理

项目管理 DevOps gitlab

反洗钱监管再度升级,看这家金融集团如何应对

索信达控股

大数据 银行 金融监管 风险管理 数据管理

23种设计模式,正确的解读方式原来是这样

Java架构师迁哥

持续测试 | 测试流程提效:在 CODING 中实践迭代内的持续测试

CODING DevOps

DevOps 测试计划 持续测试 迭代式测试

Flink 在有赞的实践和应用

Apache Flink

flink

分享:在阿里做Java开发的这五年,收获与感悟

Java架构师迁哥

研发自动化,你准备好了么?

PingCode研发中心

研发管理 研发效能 研发工具 研发团队

【干货篇】bilibili:基于 Flink 的机器学习工作流平台在 b 站的应用

Apache Flink

flink

拍乐云受邀QCon大会 | 详解音视频技术架构实践,首发美术教学音视频方案

拍乐云Pano

2021金三银四面试经历:腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

Java 程序员 架构 面试

defi流动性挖矿系统开发(案例版)丨defi流动性挖矿源码现成版

系统开发咨询1357O98O718

你想进大厂吗?阿里Java面试“内幕”分享

Java架构师迁哥

百度搜索与推荐引擎的云原生改造

百度开发者中心

云原生

百度开发者中心全新升级 | 文末六一送福利

百度开发者中心

百度 福利

系统性思维 系统之美2

张老蔫

28天写作

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