- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 2
全面解析Netflix的微服务架构设计
目 录
TOC \o 1-3 \h \z \u 1. 简介 3
2. 架构 4
2.1 Playback 架构 5
2.2 后端架构 7
3. 组件 9
3.1 客户端 10
3.2 后端?API 网关服务 11
3.3 Open Connect 19
4. 设计目标 21
4.1 高可用性 22
4.2 低延迟 23
5. 权衡 24
6. 弹性 24
7. 可扩展性 25
8. 总结 26
简介
多年来,Netflix 一直是全球最出色的在线订阅制视频流媒体服务,其流量占全球互联网带宽容量的 15%以上。截至 2019 年,Netflix 已拥有 1.67 亿订阅用户,每个季度新增 500 万订户,服务覆盖全球 200 多个国家 / 地区。Netflix 用户每天在 4000 多部电影和 47000 集电视剧上花费超过 1.65 亿小时的时间。从工程角度看,这些令人印象深刻的统计数据向我们展示了 Netflix 的技术团队设计出了多么优秀的视频流系统;这套系统具有很高的可用性和可扩展性,能为全球客户提供服务。
但是,该公司的技术团队花了超过 8 年时间才打造出今天这样强大的 IT 系统。实际上,Netflix 的基础架构转型始于 2008 年 8 月,当时他们的数据中心遇到了服务中断的故障,导致整个 DVD 租赁服务关闭三天。Netflix 意识到,它需要一个没有单点故障的更可靠的基础架构。因此它做出两个重要决定:将 IT 基础架构从自己的数据中心迁移到公共云上,并通过微服务架构,用较小的易管理软件组件替换单体程序。这两个决定为今天 Netflix 的成功打下了坚实基础。
Netflix 之所以选择 AWS 云来迁移其 IT 基础架构,是因为 AWS 可以在全球范围内提供高度可靠的数据库、大规模云存储和众多数据中心。Netflix 利用了由 AWS 构建和维护的云基础架构,从而免去自建数据中心的繁重重复劳动,并将更多精力放在提供高质量视频流体验的核心业务上。尽管 Netflix 必须重建整个技术体系,以使其能在 AWS 云上平稳运行,但作为回报,系统的可扩展性和服务可用性得到显著提高。
Netflix 还是微服务架构背后的首批主要推动者之一。微服务鼓励关注点分离来解决单体软件设计存在的问题。在这种架构中,大型程序通过模块化和独立的数据封装被分解为许多较小的软件组件。微服务还通过水平扩展和工作负载分区来提升可扩展性。采用微服务后,Netflix 工程师可以轻松更改任何服务,从而加快部署速度。更重要的是,他们能跟踪每个服务的性能水平,并在其出现问题时与其他正在运行的服务快速隔离开来。
架构
Netflix 基于亚马逊云计算服务(AWS),及公司内部的内容交付网络 Open Connect 运营。两套系统必须无缝协作才能在全球范围内提供高质量的视频流服务。从软件架构的角度来看,Netflix 包括三大部分:客户端、后端和内容交付网络(CDN)。
客户端是用户笔记本电脑或台式机上所有受支持的浏览器,或者智能手机 / 智能电视上的 Netflix 应用。Netflix 开发了自己的 iOS 和 Android 应用,试图为每个客户端和每台设备都能提供最佳的观看体验。Netflix 可以通过其 SDK 控制自己的应用和其他设备,从而在某些场景下(例如网络速度缓慢或服务器超载)透明地调整流服务。
后端包括完全在 AWS 云上运行的服务、数据库和存储。后端基本上可以处理不涉及流视频的所有内容。后端的某些组件及其对应的 AWS 服务列举如下:
可扩展计算实例(AWS EC2)
可扩展存储(AWS S3)
业务逻辑微服务(Netflix 专用框架)
可扩展的分布式数据库(AWS DynamoDB、Cassandra)
大数据处理和分析作业(AWS EMR、Hadoop、Spark、Flink、Kafka 和一些 Netflix 专用工具)
视频处理和转码(Netflix 专用工具)
Open Connect CDN 是称为 Open Connect Appliances(OCAs)的服务器网络,已针对存储和流传输大尺寸视频进行了优化。这些 OCA 服务器放置在世界各地的互联网服务提供商(ISP)和互联网交换位置(IXP)网络内。OCA 负责将视频直接流传输到客户端。
2.1 Playback 架构
当订阅者单击应用或设备上的播放按钮时,客户端将与 AWS 上的后端和 Netflix CDN 上的 OCA 对话以流传输视频。下图说明了 playback 流程的工作机制:
用于流视频的
您可能关注的文档
最近下载
- 如何进行销售管理.pptx VIP
- 影像艺术概述1课件.ppt VIP
- 大学生职业生涯规划.pdf VIP
- 有机硅公司星火科创研发中试车间项目环境影响评价报告书.pdf VIP
- GJB 438C-2021 军用软件开发文档通用要求 (高清,带章).docx VIP
- 东北三省四市教研联合体2025年高考模拟考试(一)地理试题(含答案).pdf VIP
- 建筑施工专业大纲、计划.doc VIP
- 短短芽孢杆菌JK22菌株对番茄枯萎病的抑菌作用及其小区防效.PDF VIP
- 明代文学现象研究:宗藩幕府与主流文坛的交锋.docx VIP
- 2025至2030年中国等静压石墨行业市场调查研究及投资策略研究报告.docx
原创力文档


文档评论(0)