Tuesday, January 26, 2016

Design Netflix | Cracking Code Interview



Design Netflix | Cracking Code Interview
设计一个 Netflix
架构上:基本上就是数据层,Service层,前端。因为Netflix是AWS的忠实用户,所以基本就以AWS为例:数据存储使用s3,配合Relational db / Non sql database;然后是Service layer,功能包括:User authentication,session management,data streaming and other business logic;前台则主要是用户界面。优化包括:如何Cache,如何利用CDN network replicate data close to the users. 因为Netflix的数据大部分是静态数据,很少更新,电影电视剧的内容完全可以Replicate很多份放到Internet的Edge server上。
follow up 很多 比如如何限制同一个用户多处登录不能同时看一个资源,如何实现根据用户的网速调整清晰度,怎么热门推荐等等。
https://www.google.com/patents/CN104010232A?cl=zh
本发明公开了一种智能播放在线视频的方法、系统、播放器及移动终端,方法包括:预先将视频按低到高不同等级码率切片成若干个版本的切片视频,每个版本的切片视频与不同等级码率对应;在初始播放时,播放器先从最低等级码率的版本中加载与最低等级码率对应的第一切片视频进行播放;当视频播放稳定后,播放器自动检测网络状况,根据当前的网络状况对应的码率及播放终端所能支持的分辨率,选择合适等级码率的视频切片进行加载和播放

如何限制同一个用户多处登录不能同时看一个资源
-- store accountid and current sessionid in table or redis
-- if already login, write new sessionid in the table
-- push notification to old session then invalidate the old session
Read full article from Design Netflix | Cracking Code Interview

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts