理解Instagram背后的技术
作者:微信群 微信号: 热度:570 2019-09-30
理解Instagram背后的技术
刚被 Facebook 以 10 亿美金收购的著名手机照片分享应用 Instagram 最近吸引了无数人的眼球,Android 版本登陆 Google Play 不到一个月下载量就突破 1000 万,总用户数即将超过 5000 万。Instagram 联合创始人 Mike Krieger 说他们用了 8 周时间打造了最初的 Instagram,但现在的系统肯定已经今非昔比。Instagram 技术团队曾发表过一篇文章,介绍了 Instagram 背后的技术,日前 Mike Krieger 在名为 Scaling Instagram 的演讲里,又介绍了更多细节,让人们能了解到 5 名技术人员是如何支撑起整个系统的。
这是上传照片的过程:
如果照片上有地理位置标签,则同步写入媒体数据库,以异步方式将照片提交给Solr索引,并将照片ID添加到每个追随者的列表中。列表保存在Redis中,当Feed显示时,选择少量的照片ID,在memcached中查询。
在设计系统时,Instagram的设计理念很简单,优化和监控所有内容,以最大限度地减少操作负担;其核心原则是保持简单,不要重新发明轮子,并尽可能使用经过验证的可靠技术。
仅有5名技术人员(仅有2.5个后端工程师)和有限的能源,选择Amazon的云服务是一个很好的选择。目前,他们使用100多个EC2实例来提供各种服务,运行Ubuntu11.04,一些以前的版本在高流量下不稳定。在负载平衡方面,他们使用Amazon的弹性负载平衡器实现负载平衡,并在后端运行三个nginx实例。SSL仅在ELB上运行,降低了NGINx上CPU的负载。DNS和CDN分别由Amazon的路由53和Cloudfront提供。所有照片都存储在S3上。目前,有几个TB大小。
用于处理请求的应用服务器运行在AmazonHigh-CPU超大型实例之上,而且由于它们的请求更需要CPU,这使得CPU和内存之间更好地平衡。使用的开发框架是,Django,WSGI服务器通过Fabric并行部署在所有机器上,一次部署只需几秒钟。
大多数数据存储在PostgreSQL中,主分片集群在12个高内存四倍超大实例(68.4GB RAM)上运行,12个副本在不同的可用区中运行,通过repmgr到Streaming Replication同步的方式。由于Elastic Block Store的磁盘IOPS不高,您需要将正在使用的数据加载到内存中。 vmtouch可以帮助管理内存中的数据。
最新文章
-
疫情后如何创业(揭晓疫情后如何创业成功)
疫情后如何创业赚钱?下面小编整理了疫情后如何创业的初学教程, 跟随小编来详细了解一下......1481人阅读 2023-06-18
-
2023短视频抖音对微商的冲击
很多网友问小编有关抖音对微商的冲击有多大?最新抖音对微商的冲击是什么?下面小编整理了......1374人阅读 2023-06-18
-
2023年做什么行业最赚钱(珍藏在家里就能赚钱的工作)
很多网友问小编有关2023年做什么行业最赚钱最有前途?最新2023年做什么行业最赚钱?下面小......1528人阅读 2023-05-22
-
微商怎么找客源人脉(介绍销售怎么找客户源)
儿童节快要到来,很多网友问小编有关微商怎么找客源人脉软件?最新微商怎么找客源人脉自动......1642人阅读 2023-05-11
-
微信群的作用和用途
最新的微信群有什么功能和用途?下面小编整理一下微信群的功能和使用的介绍,跟着小编了解......1738人阅读 2023-05-11