本文摘抄自《大型网站技术架构——核心原理与案例分析》,由李智慧 著
在互联网日益发展的今日,人们每天浏览着大大小小的网站,使用着各式各样的APP,无数的流量在无形中穿梭。那我们是如何判断一个网站或者APP的后台服务器端是技术强弱呢?每年大概有两个日子,是最能体现一个网站技术架构好坏的。一个是11月11日,传统的光棍节,同时也是我们马云爸爸为世界创造的一个购物节。这个节日是我们这一辈看着它发展的,从一开始的网站崩溃,到后来支持每秒上千万条订单的完成,这就是一个技术架构的成长。还有一个日子——每年春运开始抢票的日子。日复一日,年复一年,12306非常奇怪的是,无论花再多的钱,有再多的经验,他们的架构师似乎对这种可能发生大规模并发访问的问题完全没有一点概念,系统好像从来也没有经过任何高并发场景的性能评估和测试,就那么干脆利落地每年都发生着同样的事情——趴在那里长时间起不来。
其实,如何打造一个高可用、高性能、易扩展、可伸缩且安全的网站?无论是非技术人员的互联网创业者,还是单纯开发的技术人员晋升之路,都是起着非常大的一个决定性作用。
大型互联网系统都有以下几个特点:
高并发、大流量:Google日均PV数35个亿,日均IP访问数3个亿;腾讯QQ的最大在线用户数1.4个月(2011年数据);淘宝2012年双11活动一天交易额191亿,活动一开始第一分钟独立访问用户数达1000万。
海量数据:需要储存、管理海量数据,需要使用大量服务器。Facebook每周上传的招聘数目接近10亿,百度收录的网站数目有数百亿,Google有近百万台服务器为全球用户服务。
用户分布广泛,网络情况复杂:
安全环境恶劣:
需求快速变更,发布频繁:
渐进式发展:
发展历程:
1.1 初始阶段的网站结构:
大型网站都是从小型网站发展而来,网