首页 >知识讲堂 >网站建设知识>看5名技术人员是如何支撑起整个系统的:Instagram网站的图片存储架构

看5名技术人员是如何支撑起整个系统的:Instagram网站的图片存储架构

2020-12-31 09:10:57 阅读(167 评论(0)

Instagram是Facebook以10亿美元收购的著名手机照片共享应用程序,最近引起了无数人的*。Instagram联合创始人MikeKrieger表示,他们花了8周时间建造了最初的Instagram,但现在的系统肯定已经不是以前的样子了。Instagram技术团队发表了一篇文章,介绍了Instagram背后的技术。最近,MikeKrieger在名为ScalingInstagram的演讲中介绍了更多细节,让人们知道五名技术人员是如何支持整个系统的。上传一张照片的过程如下:1。同步写入媒体数据库;2.如果照片上有地理位置标签,则异步将照片提交给Solr索引;3.将照片的ID添加到每个*者的列表中,并将其保存在Redis中;4.显示Feed时,选择一小部分照片ID,在Memcached中查询;5.设计系统时,Instagram的设计理念简单,优化和监控所有内容,减轻运维负担;其核心原则是保持简单,不重复发明轮子,尽可能使用验证、稳定、可靠的技术。由于只有5名技术人员(其中只有2.5名后端工程师)精力有限,选择Amazon的云服务是个不错的选择。由于只有5名技术人员(其中只有2.5名后端工程师)精力有限,选择Amazon云服务是一个不错的选择。目前,他们使用了100多个EC2实例来提供各种服务。操作系统为Ubuntu11.04,以前的一些版本在高流量时表现不稳定。在负载平衡方面,他们使用Amazon的ElasticloadBalancer来实现负载平衡,后端运行了三个Nginx实例,SSL只在ELB上,减少了Nginx上的CPU负载。DNS和CDN分别由Amazon的Route53和CloudFront提供,所有照片都存储在S3上,目前有几个TB规模。AmazonHighigh操作用于处理请求的应用服务器-CPUExtra-在Largeinstance之上,因为他们的要求更多的是CPU密集型,所以这可以更好地平衡CPU和内存。开发框架为Django,WSGI服务器为Gunicorn,通过Fabric在所有机器上并行部署,一次只需几秒钟。PostgreSQL中存储用户信息、图片元数据、标签等大部分数据。在实践中,发现Amazon的网络磁盘系统在单位时间内找道能力不好,因此有必要将数据尽可能放入内存中。为了提高IO能力,创建了软RAID,使用MDADM工具进行RAID管理。vmtouch是管理内存中数据的小工具,值得推荐。PostgresQL设置为Master-Replica模式,流复制模式。使用EBS快照备份数据库。为了充分配合快照服务,使用XFS文件系统。PostgreSQL复制管理器采用repmgr这个小工具。Pgbouncer用于连接池管理。ChristophePetus的文章包含了很多PostgreSQL数据库的信息。Pgbouncer在连接数据库时建立应用程序连接池。目前,Instagram的数据根据用户ID进行分割,有些分割可能超过物理节点的容量上限,因此将数据分成多个逻辑分割,映射到少数物理节点;当一个节点被填充时,一些逻辑分割可以移动到其他节点,以减轻节点的压力。随着数据量的增加,他们将在未来进行垂直分区,DjangoDBRouter可以让一切轻松得多。Instagram还使用Redis存储复杂的对象(对象的大小有一定的限制),用于主Feed、活动Feed、会话系统等相关系统。因为Redis的所有数据都应该放在内存中,High也应该用在这里-MemoryQuadrupleExtra-LargeInstance,并对数据进行了分片。当Redis实例的要求达到4000/秒时,它逐渐成为瓶颈,因此Redis也从复制开始,复制的数据经常导出到磁盘上,并通过EBS快照备份。除了Redis,他们还使用Memcached作为缓存,目前运行了6个例子,应用服务器通过pylibmc和libmemcached连接。Amazon虽然提供Elasticcache服务,但服务价格并不便宜。相比之下,运行自己的Memcached实例更划算。Gearman用于异步任务队列。目前,处理各种任务的工作流程约为200个,如与Twitter和Facebook分享照片、通知用户新照片等。Pyapns已经处理了10亿推送通知,非常稳定。他们还开发了自己的基于Node的推送通知.jsnode2dm,用于向Android设备发送推送通知。在监控方面,Instagram使用Munin以图形化的方式呈现整个系统的运行状态,并通过Python-Munin定制一些插件来显示业务数据;Stated可以实时收集和总结网络保护过程;Dogslow将监控过程。一旦发现过程运行时间过长,将保存过程快照进行后续分析,例如,响应时间超过1.5秒的请求通常卡在Memcachedset()和get_many()方法。只要登上Sentry,Python的错误就可以实时获取错误信息。Highscalability还根据Instagram团队软件工程师MikeKrieger的演讲,整理了一些值得借鉴的经验,比如:1。找到你熟悉的技术和工具,在简单的使用场景中做一些尝试。2.不要用两个工具来处理同样的任务。3.提前准备降级方案,必要时减轻负荷。4.不要过度优化。或者希望事先知道网站应该扩展。对于一个初创的社交网站来说,没有扩展问题是无法解决的。5.如果一个方法不好,请尽快更换另一个方法

以上就是关于看5名技术人员是如何支撑起整个系统的:Instagram网站的图片存储架构的相关介绍,更多看5名技术人员是如何支撑起整个系统的:Instagram网站的图片存储架构相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对看5名技术人员是如何支撑起整个系统的:Instagram网站的图片存储架构有更深的了解和认识。

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

推荐阅读

三国鼎立,生鲜行业做电商如何选

大浪淘沙沉者为金,风卷残云胜者为王。在生鲜电商浪潮中,众多玩家有倒下的、站立的,也有不断新涌入的。目前,生鲜行业电商呈现前置仓、门店到家、社区拼团“三国鼎立”的模式局面。前置仓每个前置仓都是一个小型的仓储配送中心…查看详情

什么是erp会计信息系统凭证输入?

什么是erp会计信息系统凭证输入?在会计信息系统中,账务处理是一项核心的、非常重要的子系统,“凭证输入”作为其中非常重要的功能,erp会计信息凭证输入包括凭证类别、凭证编号、制单日期附件张数、摘要、会计科目、发生金额、制…查看详情

国内免费crm系统平台有哪些

当今世界大环境之下,经济发展不是那么景气,很多企业都存在一个致命的漏洞,导致利润下降。所以现在企业的管理模式必须做出改变,传统的管理模式,都是依靠人为的跟踪、记录等,无法形成系统化,效率低下、容易出现纰漏从而造成…查看详情

5款免费好用的客服软件全测评

相信有许多小伙伴都经历过问答客服的环节。客服软件是客服与客人必备的聊天沟通的一个软件系统,但是市面上有许多客服软件,他们有优劣之差,但是,避免一些新手小白再选择客服软件中踩雷,特地为大家整理了5款免费好用的客服软件…查看详情

网上客服软件都有哪些?好用的网上客服软件介绍

现在是一个网络的时代,不管是网上购物还是在网上咨询事情,很多人也都会在网络上进行详细的了解,这个时候网上客服就是非常关键的想要进行更好的与客户沟通,下载一款软件也很有必要。那么网上客服软件都有哪些?接下来就给大家…查看详情

查看端口状态的命令是什么

怎么获取服务器上的ip地址和端口号?在服务器中要查看端口,可以使用Netstat命令:1、依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。2、在命令提示符状态下键入“netstat-a-n”,按下回车键后就可以看到以数字形...查看详情

win10如何与手机同步

  在现代数字化时代,手机已经成为了我们日常生活中不可或缺的一部分,而与其配合使用的电脑也是我们工作、学习、*中不可或缺的一部分。在win10系统下,有很多便捷的方式可以与手机同步和连接,帮助我们更好地管理我们的手机数据…查看详情

SCRM是什么意思?

SCRM全称:socialcrm,即社会化客户关系管理,是当下最受欢迎的企业SaaS软件之一。对于没有接触过SCRM软件的人来说,就会有疑问SCRM是什么意思?我们为什么要选择它?从而无从下手,导致盲选,给企业带来负担。现在为了避免这种情况...查看详情

推荐的几款视频去水印软件,快速让你的视频变得干净清爽

如今各大视频网站、自媒体在视频制作过程中都会给自己的作品加上水印,防止视频被盗,因此,想要得到无水印的视频,还要学会如何去除水印,那么视频怎么去水印呢?以下几个软件或许可以解决你的问题!1、视频大师去水印视频大师去…查看详情

2021云erp系统品牌排行榜

一套好的ERP管理系统是协助企业做好内控与提高管理效率的关键,作为近十年兴起的基于云服务器端部署的云erp系统,具有高性能、功能集成、安全可靠等优势特点,本文梳理了2021云erp系统品牌排行榜供大家参考。 1. 金蝶云...查看详情

智慧校园是怎样一种智慧,我们来一探究竟

在2018年和2019年,国家连续发布了两份政府计划,其中都提到了对智慧化校园的建设,将互联网+和最新科技等应用到校园建设中来,那么智慧化校园将会搭建一个怎样的场景呢?今天我们就来一探究竟。人脸识别食堂管理系统智慧化校园的首…查看详情

免费好用的酒店管理软件有哪些 酒店管理软件排行榜

  现在在任何行业都会涉及到高效的软件管理,但是很多的酒店在这一块就做得比较好,高效的管理也会让酒店运行起来越来越方便,下面*就给大家来详细介绍一下免费好用的酒店管理软件有哪些 酒店管理软件排行榜这一块的内容,希…查看详情

windows10怎么进dos然后格式化

  Windows10进入MS-DOS命令行  MS-DOS命令行是一种字符界面控制台,它可以让我们通过输入命令来操控系统,很多高级用户和程序员经常使用它进行各种操作,比如格式化*盘、修复系统文件、安装驱动程序等,本节将介绍如何在Windo...查看详情

企业如何利用客户服务crm做好服务工作?

如今,消费者和客户都更注重口碑,企业也以优质服务来提升竞争力,如此形成企业以优质服务来收获好的口碑和宣传,达到提升竞争力的目的。于是市场中也出现了众多客户服务crm帮助企业做好服务工作。图片来源于网络 客户服务crm系…查看详情

vi的设计程序有哪些?

vi命令?Linuxvi命令也就是指vi编辑器,它们是一个意思。vi编辑器是Linux/UNIX环境下经典的编辑器。Linuxvi命令非常强大,熟练地使用它可以高效的编辑代码,配置系统文件等,是程序员和运维人员必须掌握的技能。vi可以执行输...查看详情

首页

产品

万商学院

客户服务

会员中心

当前站点

h

选择站点

全国站成都

一 客户顾问-张三

已为0个客户提供专业互联网服务咨询
  • 手机号码
  • 验证码图形验证码换一张
  • 短信校验码

    电话咨询

    在线咨询