-
日期: 2025-06-19 | 来源: 码农翻身 | 有0人参与评论 | 字体: 小 中 大
大概是2009年,我和两个好哥们聊天,觉得智能手机可能是风口,商量着要弄一个照片分享网站。
用户可以用手机把随手拍的照片放到网上分享,名称都起好了,叫InstantPost。
可是我们的执行力太差了,聚了两次,做了一点儿技术验证,就没有下文了。
过了几年,我看到美国一个叫Instagram的火了,不由地一拍大腿:卧槽!这不就是我们当年要做的事儿吗?!
后来我看到Instagram初期的故事,他们也是三个程序员,从2010年10月到2011年12月,在一年多的时间内,就把用户数量从0增长到了1400万!
看完他们的架构设计,我就释然了,抛开执行力,在2009年那个时间点,我们确实不行。
Instagram制定的架构指导准则是:
1.保持简单
2.不要重新发明轮子
3.尽可能使用经过验证的可靠技术
所以早期的Instagram跑在云上,使用EC2和Ubuntu Linux 11.04。
接下来,站在一个用户会话(Session)的角度,来看看Instagram的处理过程。
前端
Session:用户打开了Instagram APP。
2010年,Instagram开发了一个iOS app,正式推出。
因为这时候Swift还没有发布,他们用了Objective-C,UIKit等技术。
负载均衡
Session:打开App后,会向后端发起一个请求(获取主界面的“信息流”),这个请求会首先到达Instagram的负载均衡。
Instagram 最早使用2个Nginx并在它们之间进行DNS Round-Robin,这种方法的缺点是,如果某一个机器出现故障,DNS的更新需要时间。
后来他们选择了Amazon的Elastic Load Balancer,这里有三个NGINX实例,可以换入换出。- 新闻来源于其它媒体,内容不代表本站立场!
-
原文链接
原文链接:
目前还没有人发表评论, 大家都在期待您的高见