服务热线:400-0033-166
万商云集 - 企业数字化选用平台

企业首选的

数字选用平台

详解YouTube的架构原则和扩展经验

2020-12-31 11:38:18 阅读(192 评论(0)

YouTube发展迅速,每天视频点击量超过1亿,但维护站点并保证伸缩性的人却寥寥无几。这类似于PlentyOffish,少数人维护庞大的系统。原因是什么?放心,绝对不是靠性格,也不是靠孤独。我们来看看YouTube的整体技术结构。平台    ApachePythonLinux(SuSe)MySQLpsyco,动态Python到C的编译lightpd取代Apache进行视频查看状态,支持2005年2月和2006年3月每天3000万视频点击,2006年7月每天1亿视频点击,2个可伸缩软件架构师2个软件开发工程师,2个网络工程师,1DBAWeb服务器1,NetScaler用于负载均衡和静态内容缓存2fast_cgi运行Apache3,使用Python应用程序服务器来处理要求的路由4,应用程序服务器与多个数据库和其他信息源交互,以获取数据和格式化html页面5,通常可以添加更多的机器来提高web层的可伸缩性6,Python的Web层代码通常不是性能瓶颈,大部分时间阻塞在RPC7,Python允许快速灵活地开发和部署8,通常每个页面服务不到100毫秒的时间9,使用Psyco(类似JIT编译器的动态Python到C的编译器)来优化内部循环10。对于一些昂贵的块使用预先生成和缓存的html12,数据库使用行级缓存13,缓存完整的python对象14,一些数据被计算并发送到每个程序,因此这些值缓存在本地内存中。这是一种使用不当的策略。这是一种使用不当的策略。应用服务器中最快的缓存不需要太多时间就能将预计值发送给所有服务器。只需得到一个代理来监控变更,预计算,然后发送。视频服务1,成本包括带宽、硬件和能源消耗2,每个视频由一个迷你集群组成,每个视频由一台以上的机器持有3,使用一个集群意味着:  -更多的硬盘持有内容意味着更快  -failover。如果一台机器出了问题,另一台机器可以继续服务  -在线备份4,使用lighttpd作为Web服务器提供视频服务:  -Apache的费用太大了  -使用epoll等待多个fds  -从单过程配置到多过程配置,处理更多的连接5,大部分流行内容转移到CDN: -CDN在多个地方备份内容,这样,内容更接近用户的机会就会更高 -CDN机器往往内存不足,因为内容太流行,内容进出内存的颠簸很少。6.不太流行的内容(每天浏览1-20次)在很多colo站点使用YouTube服务器。 -长尾效应。一个视频可以播放多个视频,但是很多视频都在播放。多个视频可以播放,但许多视频正在播放。随机硬盘块被访问 -在这种情况下,缓存不是很好,所以花钱在更多的缓存上可能没有多大意义。 -调整RAID控制,注意其他低级问题 -调整每台机器上的内存,不要太多或太少 视频服务关键点    1.保持简单和便宜。2.保持简单的网络路径。内容和用户之间不应该有太多的设备。3.使用常用硬件,很难找到昂贵的硬件来帮助文档。4.使用简单而常见的工具,使用大多数建在Linux或以上的工具5,可以很好地处理随机搜索(SATA,tweaks)缩略图服务1,达到高效惊人的难度2,每个视频大概有4个缩略图,所以缩略图比视频多很多3,缩略图只有几台机器上的host4,持有一些小东西遇到的问题:  -OS级别的大量硬盘搜索、inode和页面缓存问题  -单目录文件限制,特别是Ext3,后来移动到多层结构。最近内核2.6的改进可能使Ext3允许大目录,但在文件系统中存储大量文件并不是一个好主意  -每秒都有大量的请求,因为web页面可能会在页面上显示60个缩略图  -Apache在这种高负载下的表现非常糟糕  -在Apache前端使用squid,这样工作了一段时间,但由于负载继续增加,以失败告终。它把每秒300个请求变成了20个请求  -尽量使用lighttpd,但由于使用单线程,它陷入了困境。遇到多过程问题,因为它们保持自己独立的缓存  -这么多图片,一台新机器只能接管24小时  -重启机器需要6-10个小时来缓存5,YouTube开始使用GogleBigTable来解决所有这些问题,分布式数据存储:  -避免小文件问题,因为它收集文件在一起  -快,容忍错误  -由于使用分布式多级缓存,延迟较低,该缓存与多个不同的collocation站点一起工作  -更多信息参考GoogleArchitecture,GoogletalkArchitecture和Bigtable数据库    1,早期  -使用MySQL存储元数据,如用户、tags和描述  -用RAID10存储整个10硬盘的数据  -YouTube依靠信用卡租用硬件  -YouTube经历了一场常见的革命:单服务器,然后是单master和多readslaves,然后是数据库分区,然后sharding模式  -痛苦和备份延迟。master数据库是多线程的,运行在大机器上,所以可以处理很多工作。slaves是单线程的,通常运行在较小的服务器上,备份是异步的,所以slaves会远远落后于master。  -更新导致缓存失效,慢I/O硬盘导致慢备份  -使用备份架构需要大量的money来获得更高的写作性能  -YouTube的解决方案之一是将数据分为两个集群,将传输分为优先级:视频查看池和一般集群2,后期  -数据库分区  -分为shards,不同的用户指定不同的shards  -扩散读写  -更好的缓存位置意味着更少的IO  -硬件减少30%  -备份延迟减少到0  -依靠信用卡,可以随意完善数据库的可伸缩性数据中心策略1,因此,一开始只能使用受管主机提供商2,受管主机提供商无法提供可伸缩性,无法控制硬件或使用良好的网络协议3,YouTube改为使用colocationarangement。现在YouTube可以定制一切,并同意自己的合同4,使用5到6个数据中心和CDN5,视频来自任何数据中心,而不是最近的匹配或其他任何东西。现在YouTube可以定制一切并同意自己的合同4,使用5到6个数据中心和CDN5,视频来自任何数据中心,而不是最近的匹配或其他任何东西。如果一个视频足够受欢迎,它将移动到CDN6,这取决于视频带宽,而不是真正的延迟。可以来自任何colo7,图片延迟非常严重,特别是当一个页面有60张图片时,使用bigtable将图片备份到不同的数据中心,代码查看谁是最近的扩展思维,虽然下面不是一个新想法,但我希望它能帮助你。分而治之是扩展技术的灵魂。考虑以层次化的方式完成所有工作。这也是数据分片的症结。要知道如何将数据分区,以及如何将分区的数据连接起来。总而言之,保持简单和松散的耦合是非常必要的。充分利用Python的动态特性,构建易于扩展的软件架构。近似的正确性。相信监控系统报告的系统运行状态。假如问题没有出现,就认为一切都很好。不一致的数据模型。比如读评论的人和写评论的人会对你刷新页面的动作有不同的反应,但是不需要完全基于事务处理进行系统设计,会显得过度矫枉过正。我们仍然需要不一致的数据模型。分布式系统的随机性。像气象系统一样,分布式系统在调试分布式系统时会有更多的随机性。例如,缓存过期。一般情况下,服务器会缓存流行视频24小时。如果缓存同时过期,服务器将同时开始缓存,负载如雷声!最快的函数调用是不做任何调用。合理设计事务处理的间隔和次数。仔细观察API,心中有数。如何定义输入和输出?本质上,所有的函数调用都是围绕数据发生的。函数调用后会发生什么?RPC重定向应用于Python。程序员是代码的构建者,所以要做好协议。如果代码不幸失败,也可以从RPC输出中追踪原因。没有完美的组件。一个组件的运行周期可能会持续1-6个月,没有人知道它会持续多久。随着时间的推移,我们会用Python和C重写一些东西,这证明你正在淘汰旧组件,当你观察到一个新组件出现时,它就诞生了。没有人知道整个系统的运行机制。因此,我们需要定义组件。视频转码与视频搜索完全不同,建立良好的数据规范非常重要。效率与可扩展性并重。最有效的是用C实现过程,但这种方法缺乏可扩展性。关注宏观层面、组件及其失败的原因。使用RPC明智吗?内联如何?分解研究可能会发现不同之处。重视算法。与其绞尽脑汁用Python来实现高效算法,不如用它来做更实用的事情。C语言在这方面有其优势。很少从事面向对象的设计。我们使用大量的名称空间来组织数据,但很少面向对象。我愿意用以下词来形容我们的代码树:简单、实用、优雅、正交、可组合,这是我们的追求。总结YouTube解决问题的哲学只有一个词:简单。许多YouTube产品最初来自一个简单的Python脚本。这是我们的一句老话,不积小步,不至千里;不积小流,不能成江海。

内容来源:网络,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

wifi共享软件哪个好 2022免费的wifi共享软件

  随着技术进步,很多现在的数据资费降低、和用户隐私安全的提高,还伴随着对外开放免费的WiFi服务覆盖了各个场景,大部分人也渐渐的降低了对WiFi万能钥匙的依赖性。曾经风靡一时的万能钥匙现在也面临被淘汰的遭遇。  “万能钥匙”过气了?  万…查看详情

微信分身是什么意思

什么是微信分身功能?微信分身、微信多开、微信双开,应用多开分身更安全稳定不封号! 《微多开分身》APP作为应用多开分身类,微信用户口碑款分身APP,可轻松实现如:微信多开、微信双开、游戏多开等几乎所有应用的多开分身,完美解决用户多账户同时…查看详情

好看的美国喜剧有哪些 美国最经典十大喜剧

其实很多人都喜欢看美剧,而且经典的美剧也有很多,下面万商云集小编给大家来详细介绍一下好看的美国喜剧有哪些 美国最经典十大喜剧,不知道下面的这些美剧大家看过没有。  麦克斯的话看似是狠辣的毒鸡汤,可当我们认真品味,却总能发现里面是满满的勇气,…查看详情

值得考虑的7款制图软件,有效增加工作效率

在工作和生活中可能会涉及到需要制图的需求,这时大家如果能够选择一款好用的软件,就可以节省时间增加工作的效率。但如果选择的软件不当,自然也会影响到图片的制作,因此可见制度软件的选择至关重要,那么制图软件哪个好呢?这几种值得考虑,大家可以了解一…查看详情

如何给压缩文件加密

压缩文件怎么设置密码?1、在右键点击文件夹后弹出的菜单栏中选“添加压缩文件”。; 2、在进行压缩文件操作时,选择左下角的“添加密码”。; 3、输入密码及再次输入密码,点击确认。; 4、然后点击“立即压缩”。; 5、压缩后,选择压缩文…查看详情

广告策略主要包括哪些策略?

试比较分析企业目标市场战略的三种模式?1、无差异性目标市场策略该策略是把整个市场作为一个大目标开展营销,它们强调消费者的共同需要,忽视其差异性。 采用这一策略的企业,一般都是实力强大进行大规模生产方式,又有广泛而可靠的分销渠道,以及统一的…查看详情

发明专利怎么破除 发明专利破除方法

依据我国专利法的规定,发明专利终止的情形包括没有按照规定缴纳年费的、专利权人放弃专利权的,或者专利复审委员会宣告该专利权无效的等。下面万商云集小编就给大家来详细介绍一下发明专利如何破除这方面的内容,希望能帮助到大家。  一、发明专利如何破除…查看详情

你急需的企业网站建设文案写作攻略

一个具备足够用户吸引力的企业网站建设自然离不开一手漂亮的文案内容。好文案如美人,带给客户愉悦感,并直抓潜在客户心理需求,促进销售达成。下面我们就分享一些企业网站建设中,文案写作的心得吧! 从平凡中发现不平凡 首先,明确网站建设文案的直接目标…查看详情

有哪些CRM客户管理系统,国外也可以使用

市场上有很多CRM客户管理系统,这使得与国际客户更容易合作。公司可根据公司的发展情况,尝试不同的CRM系统,一次使企业迅速发展,当你的企业是一家小企业,但是顾客多,而且很难管理,或者想让客户管理更方便,那就可以采用灵活灵活的网上CRM客户管…查看详情

erp系统操作方法介绍

听多了、看多了erp系统原理、如何选择erp系统、erp系统的优势,不如今天更详细地了解下一直都在反复提及的erp系统操作吧,下面由小万为你讲述。图片来源于网络erp系统操作主要分为六个方面:◤ 1. 基本系统操作它主要是指对整个erp系…查看详情

什么情况下属于小规模纳税人(新政策解读)

  值税小规模纳税人适用3%征收率的应税销售收入,减按1%征收率征收增值税;适用3%预征率的预缴增值税项目,减按1%预征率预缴增值税。下面小编就给大家来详细介绍一下什么情况下属于小规模纳税人这一块的内容。  什么是小规模纳税人  小规模纳税…查看详情

电商平台需要哪些系统来支撑线上交易流程?

互联网技术在发展,消费者线上消费的行为也在不断进化,电商不仅仅局限于商品交易,现在需要满足更多的消费需求和市场营销。企业电商平台从采购、入库、上架,到前端销售,选购、下单、支付,再到收货、退款、评价。这一系列的交易流程都需要电商平台进行支撑…查看详情

网站设计如何为企业带来真正的价值?这几点十分重要

对于企业来说网站属于展示的门面,所以一定要做好相关的设计,只有各方面都做到完美,这样对于企业来说才可以真正的实现价值,产生流量的转化,甚至能够获得更多的目标客户,那么网站设计如何为企业带来真正的价值呢?这几点十分,重要大家不能忽…查看详情

软件专利权可以保持多少年 软件专利保护多少年

    依据我国相关法律的规定,使用电脑或者智能手机等设备时,要有软件才能运行的,而软件是属于知识产权的一种,并且是非常重要的知识产权,那么软件专利权可以保持几年?下面由万商云集小编给大家带来软件专利权可以保持多少年 软件专利保护多少年这方…查看详情

个人网站可以不备案吗 个人网站需要备案不?

  互联网中的网站数以万计,每天我们都在访问各类网站,个人和企业大多都会建立自己的网站,在此过程中,有站长觉得网站备案,对网站的排名、可信度都有帮助,也有站长觉得网站备案太麻烦了,还不容易通过,究竟要不要做网站备案?下面小编就给大家来详细介…查看详情

最新文章