iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何理解Netflix的信息处理架构
  • 348
分享到

如何理解Netflix的信息处理架构

2023-06-10 07:06:02 348人浏览 安东尼
摘要

本篇内容介绍了“如何理解Netflix的信息处理架构”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Netflix是一家在线影片租赁提供商,该

本篇内容介绍了“如何理解Netflix的信息处理架构”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Netflix是一家在线影片租赁提供商,该公司连续五次被评为顾客最满意的网站,在过去的7年中,Netflix流媒体服务从偶尔有数千用户在线观看发展到了数百万用户平均每月观看超过20亿个小时的规模。Netflix之所以能够如此成功,离不开对用户行为数据的收集与分析,那么Netflix会收集哪些数据,这些数据会用来做什么,其处理架构又是什么呢?

事实上,当用户开始在Netflix的网站上观看电影或者电视节目的时候,Netflix的数据系统会创建一个“观看会话(view)”,描述该会话的所有事件信息都会被收集起来。该观看会话数据架构能够应对从用户体验到数据分析的诸多场景,其中最主要的场景有三个:

用户看了哪些视频?系统需要知道每一个用户的所有观看历史,以便于为用户推荐相关的视频内容,同时在页面上的“最近观看”一栏中显示观看历史。用户所看的内容对于用户兴趣的衡量,产品和内容的决定非常重要。
用户从哪里离开了视频?对于每一个电影或者电视节目,Netflix会记录每一个用户都看到了哪里,从哪个时间点离开的。这使得Netflix的用户能够在同一个或者另一个设备上继续观看视频。
当前帐户现在还在观看哪些视频?家庭成员间的帐户共享使得任何人可以在任何时候观看自己喜欢的视频,但是这也意味着当帐户同时在线数超限的时候,必须要有人放弃观看。针对这种场景,Netflix的观看会话数据系统会收集每一个会话的周期性信号以便于决定某个成员是否还在观看相关视频。
这些场景的实现离不开强大而稳定的数据处理系统,Netflix目前的系统架构由早期的单数据库应用程序演变而来,当时的主要需求是能够低延迟地为用户提供视频服务,同时还能够处理来自于数百万Netflix流设备的快速增长的数据集。在过去3年多的时间里,Netflix一直在不断地改进该架构,现在这套系统每天能够处理千亿左右的事件。

当前的架构图如下:
如何理解Netflix的信息处理架构

整个架构最主要的接口是观看会话服务,它分为有状态层和无状态层两部分。有状态层在内存中存有所有活动视图的最新数据。通过对用户帐户ID进行mod N的模运算,数据被简单地划分为N个有状态的节点。当有状态的节点上线的时候,系统会通过一个位置选择流程决定哪部分数据属于它们。所有的持久化数据都存储在Cassandra中,在Cassandra之上有一个Memcached用来保证低延迟的读取路径,但是采用这种方式会话数据有可能会过时,同时如果一个有状态的节点出现了错误,那么1/n的浏览数据将不能读写。无状态层的引入正是为了解决这一问题,它提升了系统的可用性,当有状态的节点无法访问的时候,该层会将过时的数据反馈给用户。

但是即使是做了诸多改进,以上架构依然存在一些缺陷:

虽然有状态层使用一个简单的、服从热点分布的分片技术,但是Cassandra层并不服从这些热点;同时,如果将其从一个AWS Region移动到多个AWS Region上运行,那么必须定制一种机制来实现分布在不同Region上的状态层之间的状态通信,极大地增加了系统的复杂性。
对于观看会话服务,它封装了会话数据的收集、处理和提供功能,随着系统的演变,功能的增多,该服务的责任也越来越多,增加了运维的难度。
虽然Memcached提供了非常好的吞吐量和延迟特性,但是使用一种能够为一等数据类型和操作(例如append)提供原生支持的技术能够更好地满足相关需求。
为了扩展系统满足下一个数量级的需要,Netflix正在重新思考自己的基础架构,新系统在设计时考虑的主要设计原则包括:

可用性比一致性更重要。
微服务。对于有状态架构中柔和在一起的组件,根据它们的主要目的分离成单独的服务——或收集、处理或提供数据。将状态管理功能托管到持久化层,让应用程序层无状态,同时组件之间通过事件队列解耦。
混合持久化。使用多种持久化技术,利用每一种方案的优势。使用Cassandra实现高容量、低延迟的写。使用Redis实现高容量、低延迟的读。
遵循以上原则的新架构实现如下:
如何理解Netflix的信息处理架构

当然,这个架构图也仅仅是Netflix目前的设计图,至于实现到何种程度了,我们还未可知。Netflix表示对关键系统进行重新架构以使其能够扩展到下一个数量级是一项非常困难的工作,需要长时间的开发测试和验证,同时迁移也不是那么容易。但是以这些架构原则为指导,Netflix相信他们正在构建的下一代系统能够满足自己大规模、快速增长的需要。

“如何理解Netflix的信息处理架构”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何理解Netflix的信息处理架构

本文链接: https://www.lsjlt.com/news/259807.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解Netflix的信息处理架构
    本篇内容介绍了“如何理解Netflix的信息处理架构”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Netflix是一家在线影片租赁提供商,该...
    99+
    2023-06-10
  • 如何理解计算机信息处理
    这篇文章主要介绍“如何理解计算机信息处理”,在日常操作中,相信很多人在如何理解计算机信息处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解计算机信息处理”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-09
  • Kafka是如何处理Netflix每天2万亿条消息的
    Kafka是如何处理Netflix每天2万亿条消息的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。从产生伊始,各类微服务就需要以不同的方式进行彼此通信。有些人喜欢使用 HTTP...
    99+
    2023-06-02
  • 如何理解Apache Mesos模块间通信架构
    这篇文章给大家介绍如何理解Apache Mesos模块间通信架构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.  介绍Mesos主要由四种组件组成,分别是mesos-ma...
    99+
    2024-04-02
  • 网站的信息架构怎样设计更合理
    一个合理的网站信息架构应该基于用户的需求和行为习惯,遵循简洁、清晰、易用的原则。以下是一些设计更合理的网站信息架构的建议: 确定...
    99+
    2024-04-17
    建站
  • 如何实现facebook的信息架构评析
    这期内容当中小编将会给大家带来有关如何实现facebook的信息架构评析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。facebook的信息架构设计,是目前为止互联网上我见过的最合理的信息架构。每次培训,...
    99+
    2023-06-08
  • 如何理解SAP Kyma的架构
    如何理解SAP Kyma的架构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SAP kyma主要分三大块组成:(1) 应用程序连接器简化并安全地将外部系统连接到...
    99+
    2023-06-04
  • 如何理解HTTP头部信息
    本篇内容介绍了“如何理解HTTP头部信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HTTP 头部解释 1. Accept:告诉WEB服务...
    99+
    2023-06-08
  • 如何理解MYSQL安全信息
    本篇文章给大家分享的是有关如何理解MYSQL安全信息,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  如果想了解攻击者,那么拥有的信息来源是非...
    99+
    2024-04-02
  • 如何理解FACEBOOK的系统架构
    本篇文章为大家展示了FACEBOOK 的系统架构,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Web 前端是由 PHP 写的。Facebook 的 HipHop 会把PHP转成 ...
    99+
    2023-06-05
  • 如何理解Serverless架构模式
    这篇文章将为大家详细讲解有关如何理解Serverless架构模式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是 Serverless 架构?按照 CNCF 对 Serverless 计...
    99+
    2023-06-04
  • Python如何处理中国地区信息
    本篇文章为大家展示了Python如何处理中国地区信息,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.1数据的爬取代码:import pandas as pddata=...
    99+
    2023-06-22
  • 如何理解微服务架构
    因为Martin Fowler和Chris Richardson两位大神的布道,及NetFlix和Amazon公司的实践,国内对于微服务的一些基础问题理解基本一致,但受限于自身单体应用的限制,过度到微服务架构,又要各想办法,具体问...
    99+
    2023-06-05
  • 如何理解SQLite软件架构
    本篇内容主要讲解“如何理解SQLite软件架构”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解SQLite软件架构”吧!SQLite是一个非常受欢迎的数据...
    99+
    2024-04-02
  • CSS架构中的SMACSS该如何理解
    这期内容当中小编将会给大家带来有关CSS架构中的SMACSS该如何理解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。因为 CSS 只有一个作用域,如果不注意维护 CSS ...
    99+
    2024-04-02
  • linux如何显示机器的处理器架构
    ...
    99+
    2024-04-02
  • 如何理解IE=edge,chrome=1的META信息
    这期内容当中小编将会给大家带来有关如何理解IE=edge,chrome=1的META信息,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。这几天...
    99+
    2024-04-02
  • Ajax中如何接收和处理xml信息
    本篇文章为大家展示了Ajax中如何接收和处理xml信息,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Ajax负责请求和接收xml信息,DOM负责处理xml信息。DOM:php中,DOM是php 与 ...
    99+
    2023-06-08
  • 微服务架构中如何处理非结构化数据的处理和存储?
    随着互联网技术的不断发展,越来越多的企业开始采用微服务架构来提高业务的效率和灵活性。在微服务架构中,微服务之间采用轻量级的通信协议进行交互,而非结构化数据的处理和存储成为了一个重要的问题。本文将介绍在微服务架构中如何处理非结构化数据的处理和...
    99+
    2023-05-17
    存储 微服务架构 非结构化数据处理
  • 如何理解kubernetes scheduler架构设计
    这期内容当中小编将会给大家带来有关如何理解kubernetes scheduler架构设计,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。资源调度基础scheudler是kubernetes中的核心组件,负...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作