HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

评论

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

SpringBoot 整合 Drools

LeifChen

drools springboot 规则引擎 8月日更 业务规则

金九银十想面BAT?那这些JDK动态代理的面试点你一定要知道

编程菌

Java 编程 程序员 计算机 技术宅

【Vue2.x 源码学习】第二十五篇 - 数组依赖收集的原理

Brave

源码 vue2 8月日更

Java入门你值得拥有!天天都是面对对象编程,你真的了解你的对象吗

Java 程序员 后端

万字长文 | 16张图解开AbstractQueuedSynchronizer

程序猿阿星

并发编程 AQS 线程安全 多线程并发

读书日送书丨关于音视频技术你需要知道的二三事

声网

人工智能

Error SHA256 mismatch

一个大红包

8月日更

Vue进阶(五):与 Vuex 的第一次接触

No Silver Bullet

Vue vuex 8月日更

80后程序员感慨中年危机,如何设计一个优雅的RESTFUL的接口

Java 程序员 后端

带你使用FFMPEG将MP4视频文件转换为GIF

hanaper

【网络安全】渗透工程师面试题总结大全

网络安全学海

面试 网络安全 信息安全 渗透测试 漏洞

刷完这套200+大厂Java真题手册,成功拿到阿里,京东,美团的offer

Java 编程 架构 面试 架构师

Cloud Studio 2.0:云的开端

CODING DevOps

ide DevOps 开发环境 Cloud Studio

当一只「无头苍蝇」又何妨?

非著名程序员

读书笔记 提升认知 个人提升 8月日更

230页,看完之后你就会知道,原来Redis还能这么玩!

Java架构师迁哥

解决方案|在线自习室

anyRTC开发者

音视频 在线教育 RTC RTM

网络攻防学习笔记 Day95

穿过生命散发芬芳

态势感知 网络攻防 8月日更

这些奥运“黑科技”运用了哪些AI技术?

澳鹏Appen

自动驾驶 机器学习 人脸识别 nlp 数据标注

Nacos注册中心之概要设计

捉虫大师

微服务 nacos 服务发现

试错,然后成长

escray

学习 极客时间 朱赟的技术管理课 8月日更

IBM大面积辞退40岁+的员工,瞧一瞧

Java 程序员 后端

Java入门视频教程!Kotlin(2)-泛型与集合

Java 程序员 后端

【前端 · 面试 】HTTP 总结(四)—— HTTP 状态码

编程三昧

面试 大前端 HTTP 8月日更

iOS底层学习【KVC】

程序员 iOS底层

12~18k的前端面试会问个啥?

前端依依

学习 程序员 面试 大前端 经验分享

面试官:JVM的运行时数据区了解不?

程序员阿杜

Java JVM JVM、 8月日更

阿里人,五年心血汇聚而成这份Spring Cloud Alibaba开发手册

Java架构师迁哥

Java入门你值得拥有!浅谈Facade外观模式

Java 程序员 后端

为了进阿里,我通宵达旦三个月,学了这些技术点(附Java思维导图)

Java 编程 架构 面试 架构师

如何洞察出消费者购买的关键时刻

石云升

用户体验 关键时刻 体验设计 8月日更

Kong-To-APISIX:减轻你的迁移压力

API7.ai 技术团队

开源 网关 kong APISIX

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