大型网站技术架构(一)概述

软件架构:有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

一特点

高并发、大流量

google的日PV是35亿,日均IP是3亿。QQ最大在线数1.4亿(2011),淘宝双11一天交易额191亿(2012)

高可用

7×24,

99%,网站年度不可用时间小于88小时

99.9%,小于9小时

99.99%,小于53分钟

99.999%,小于5分钟

海量数据

facebook1350亿条/月

用户分布广泛、网络情况复杂

不同的网络运营商,GFW防火墙

安全环境恶劣

需求快速变更,发布频繁

渐进式发展

所有大型网站,都不是一天弄出来的。都是从小型网站演化、进化而来。12306虽然那么牛逼,也是弄了两三年不是?

二大型网站架构演化

初始阶段

WEB应用和数据库部署在同一台服务器上

应用服务器和数据服务分离

WEB应用服务器和数据库系统部署在2台服务器上

使用缓存

有独立的缓存服务器

应用服务器集群

开发无状态应用,部署多个应用服务器

数据库读写分离

数据库系统成为瓶颈,使用读写分离,提高数据库系统的并发处理能力

反向代理和CDN

缓存静态文件,减少应用服务器的压力

分布式文件系统和分布式数据库

进一步提高文件服务器的容量和处理能力,数据库的规模进一步扩大。

NOSQL和搜索引擎

使用hbase,mongoDB等NoSQL技术,使用搜索引擎提高处理能力。

业务拆分

分库、分表、分区。

将不同业务模块进行独立,拆分业务。

分布式服务

将业务开发成服务,即:SOA架构。

相关推荐