免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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

评论

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

会声会影2023和谐版本补丁包下载

茶色酒

会声会影 会声会影2023

从任务分配角度来看管理

石云升

极客时间 1月月更 技术领导力实战笔记

GLM国产大模型训练加速:性能最高提升3倍,显存节省1/3,低成本上手

OneFlow

人工智能 深度学习

【Redis技术专区】「优化案例」谈谈使用Redis慢查询日志以及Redis慢查询分析指南

洛神灬殇

redis 性能调优 慢查询

企业架构治理指什么,如何做?

涛哥 数字产品和业务架构

架构治理 企业构架

复习前端:浏览器渲染机制

devpoint

DOM CSSOM 渲染树 重绘 重排

Verilog HDL仿真常用命令

timerring

FPGA

模块六作业

Ryan

架构

如何用Know Streaming来查询Kafka的消息

石臻臻的杂货铺

Kafk

精华推荐 | 【深入浅出 RocketMQ原理及实战】「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行核心的流程(上篇)

洛神灬殇

RocketMQ 消息队列 原理分析

极客时间运维进阶训练营第12周作业

独钓寒江

FPGA:Verilog HDL程序的基本结构

timerring

FPGA

你知道这个提高 Java 单元测试效率的 IDEA 插件吗

JAVA旭阳

Java

FPGA:逻辑功能的仿真与验证

timerring

FPGA

IntelliJ中高效重构的 10 个快捷方式

JAVA旭阳

Java

【PHP】英文博客专栏PHP快速入门个人笔记

懒时小窝

php

如何妥善且优雅地做好解聘工作?

石云升

极客时间 1月月更 技术领导力实战笔记

影响产品开发决策的认知偏见

俞凡

认知

【腾讯云AI】用1行Python代码识别增值税发票,YYDS

程序员晚枫

Python 人工智能 发票 OCR

复习前端:前端应掌握的网络知识

devpoint

OSI七层协议 http2 HTTPS协议加密

CleanMyMac X2024版本值不值得买?

茶色酒

CleanMyMac X CleanMyMac X2023

OneFlow v0.9.0正式发布

OneFlow

人工智能 深度学习

模块5 微博高性能计算架构设计

KING

关于环境变量配置的思考总结

timerring

Go 环境变量

问题代码定位神器: Git Bisect

俞凡

git

设计微博系统中”微博评论“的高性能高可用计算架构

悟空

架构 高可用 高性能 微博评论

如何判断候选人与岗位的匹配程度?

石云升

极客时间 1月月更 技术领导力实战笔记

技术管理者如何获得下属的认同?

石云升

极客时间 1月月更 技术领导力实战笔记

我们需要怎样的低代码平台

agnostic

低代码

我总结了写出高质量代码的12条建议

JAVA旭阳

Java

FPGA:硬件描述语言简介

timerring

FPGA

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