亚州色图

你的位置:亚州色图 > 极度强奸 >

yinsewang 深化领路 Netflix 后端架构与云处事的系统假想

发布日期:2024-09-25 05:10    点击次数:118

yinsewang 深化领路 Netflix 后端架构与云处事的系统假想

  作家 | Nidhi Upretiyinsewang

  译者 | 山地

  策划 | Tina

  统计数据

  在深化先容 Netflix 的架构之前,咱们领先看一些迫切的统计数据,它们是系统假想的基础:

  Netflix 讹诈法子每天有约莫 4000 亿个事件;

  在岑岭期,每秒要处理约莫 800 万个事件和 17GB 数据;

  有超越 2 亿名订阅用户;

  订阅用户踱步在众人 200 多个国度;

  守旧 2000+ 建造;

  每位用户平均每天不雅看 5 个视频;

  视频平均大小为 500 MB;

  平均每天从后台上传 1000 个视频;

  每天上传所需的存储空间为:1000 * 500 MB = 500 GB(粗略)

  5 年内所需的总存储空间为:500 GB * 5 * 365 = 912.5 TB

  在 Netflix 上线一个视频

  Netflix 从制作公司赢得高质地的视频和实质。关系词,Netflix 守旧 2000 多种建造,每种建造都需要不同的离别率和现象。

  对于归拢部电影,Netflix 要准备多种不同的视频,而况还要为每一种视频准备多个领有不同离别率的副本,然后左证用户的网速和建造细目向他们提供何种视频质地的视频。为了终了这一斟酌,Netflix 将原始视频切分红不同的小块,并使用 AWS 提供的并行责任者程度将它们蜕变成不同的现象(如 mp4、3gp 等)和不同的离别率(如 4k、1080p 等)。这个流程称为转码。

  经过转码之后,归拢部电影就有了多个文献副本。它们会被传输到全国各地不同场地的每一台 Open Connect 处事器上。

  云处事

  Open Connect—— Open Connect 或 Netflix CDN 是一个踱步在不同地舆位置的踱步式处事器麇集。归拢电影文献的不同副本会被传输到每个 Open Connect 处事器上。Open Connect 主要沉静 Netflix 的视频流。当你点击播放按钮,Netflix 会从距离你最近的 Open Connect 处事器把视频提供给你,从而提供更快、更好的体验。此外,这还增多了通盘系统的可彭胀性。这些处事器被称为 Open Connect Appliances(OCA)。

  注意: 上头的 912.5 TB 并不包括存储这些副本的存储空间。

  AWS—— 除了视频流,Netflix 委果总计业务都使用 AWS。这包括在线存储、推选引擎、视频转码、数据库和分析。

  当用户点击播放按钮时,Netflix 会分析网速或联结自如性yinsewang,然后找出离用户最近、最相宜的 Open Connect 处事器。Netflix 会左证建造和屏幕的大小将正确的视频现象以流的方式传输到用户的建造中。

  Netflix 的后端架构

  除了视频流以外,Netflix 的总计业务都由自后端处事处理,包括上线新实质、处理视频、将视频分发到位于全国各地的处事器,以及照顾麇集流量。

  来自客户的央求被发送到 AWS Elastic 负载平衡器,后者是一个 2 层架构:

  第 1 层:来自 ELB 的央求会领先到达这一层。该层沉静基于 DNS 的轮询颐养在不同的区域之间平衡负载。

  第 2 层:该层包含一组负载平衡实例。这些实例在归拢区域内的多个实例之间通过轮循方式终了负载平衡。

  ELB 将此央求转发到 API 网关。Netflix 使用启动在 AWS EC2 实例上的 ZUUL 行动 API 网关。ZUUL 是由 Netflix 开拓的一个库,主要用途包括:动态路由、监控和安全。ZUUL 左证查询参数、URL 和旅途进行路由。

  Netflix 基于一系列处事构建。使用处事都集构建讹诈法子的方式被称为微处事架构。在这种架构中,处事之间相互孤独。

亚洲色情网

  从建造和网站发起的总计央求都要经过 ZUUL 才气到达 Netflix 流媒体讹诈法子的后端。ZUUL 左证用户央求将其路由到特定的处事。举例,淌若用户试图登录,则将央求发送到身份考证处事。

  Netflix 架构具有复杂的踱步式结构。这种结构有好多优点,也存在一些依赖关系。举例,一台处事器可能要依赖于另一台处事器的输出才气责任。这些处事器之间的依赖关系可能会导致蔓延,淌若其中一台处事器罢手责任,还可能导致单点故障。

  对于上述问题,Netflix 使用了 Hystrix。Hystrix 是 Netflix 开拓的一个功能尽头无边的库,它能使微处事之间相互休止,从而将失败数降至最低。Hystrix 是通过休止处事之间的窥探点来终了的。Hystrix 的用途包括:快速失败和快速复原、准及时监视、预警和操作界限,减少通过第三方客户端库窥探(世俗通过麇集)依赖项时可能产生的蔓延和故障,幸免复杂踱步式系统中的级联故障。

  用户活动和历史数据会被发送到流处理管谈,用于后续的电影推选。

  这些数据还会被发送到 AWS、Hadoop、Cassandra 等大数据处理器用作念进一步处理。

  Netflix 使用的数据库

  Netflix 使用了两种不同的数据库:

  MySQL

  Cassandra

  MySQL

  对于账单信息、用户信息和往还信息等数据,因为需要笃信 ACID,是以 Netflix 使用 MySQL 来存储。Netflix 的 MySQL 给与了主 - 主成就,部署在 Amazon 的大型 EC2 实例上。

  在主 - 主成就中,主主节点的写入会被复制到另一个主节点。只须当主主节点和良友主节点的写操作都说明后,才会发送写入说明信息。这确保了数据的高可用性。

  Netflix 为每个节点(腹地和跨区域)成就了读副本,确保了高可用性和可彭胀性。

  Cassandra

  Netflix 使用 Cassandra 是因为它的可彭胀性、无单点故障和跨区域部署。总之,一个全局 Cassandra 集群就不错既为讹诈法子提供处事,又跨多个地舆位置异步复制数据。

  Netflix 的 Cassandra 数据模子:

  50+ Cassandra 集群

  500+ 节点

  日备份数据量 30TB

  单节点每秒写入次数 250k

  Kafka 和 Apache Chukwa在 Netflix 的讹诈

  如上所述,Netflix 基于一系列微处事构建,这些微处事共同为用户提供许多处事。

  世俗,在微处事架构中,一定的失败率是不错接受的。不外,有些失败可能会导致更大的问题。任何一个微处事调用的失败都可能导致大批筹划不同步,并可能导致数据差个几百万好意思元。那还会导致可用性问题和盲点,让你无法灵验地追踪数据并回话用户对于什么导致了数据不匹配的问题。

  上述问题的科罚决策是再行斟酌处事的交互方式,将一系列同步央求替换为异步事件交换。这么作念有以下公正:

  咱们的基础设施酿成了天生异步的;

  咱们的讹诈法子酿成了松耦合的,误差的可追想性得到改造。

  Netflix 使用 Apache Kafka 来鼎沸 事件、音讯 和 流处理 需求。

  Apache Kafka 以发布 / 订阅模子为基础。Netflix 的处事将它们的改革行动事件发布到音讯总线上,然后由另一个对该音讯感兴致的处事破钞,用于调整其自己的情景。

  这使咱们能够追踪处事情景改革是否同步,淌若不同步,那么它们需要多长工夫才气完成同步。在照顾大型处事依赖图时,这种瞻念察尽头有用。

  基于事件的通讯和去中心化破钞匡助咱们克服了在大型同门径用图中经常看到的问题(如上所述)。

  Apache Chukwa

  Apache Chukwa 是一个开源的数据麇集系统,可用于监控复杂的踱步式系统。Chukwa 麇集来自不同微处事的事件,并将其写入 Hadoop 文献序列现象。Chukwa 还为 Kafka 提供流量,以便将事件上传到不同的斟酌,如 S3、Elastic 搜索等。

  ElasticSearch

  Netflix 使用 Elastic 搜索来提供客户守旧处事、数据可视化和误差检测。举例,淌若用户弗成播放视频,那么播放团队将使用 Elastic 搜索来查找问题的原因。它还用于追踪资源使用情况及检测注册或登录问题。

  原文长入:

  https://medium.com/@nidhiupreti99/understanding-system-design-of-netflix-backend-architecture-and-cloud-services-b077162e45bc

  Netflix 的 CEO:为什么咱们欢乐高薪雇佣法子员?(https://www.infoq.cn/article/w4VV1MBhw6VGuxHO9ui2 )

  羼杂云的多活架构指南 (https://www.infoq.cn/article/ZESNdLWpvj8gWf0hdrJA)

  声明:本文为 InfoQ 翻译整理yinsewang,未经许可羁系转载。





Powered by 亚州色图 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024 版权所有