大型网站的特点
高并发
、大流量
:PV(page view)量巨大高可用
:7*24小时不间断服务海量数据
:需要存储、管理海量数据,需要使用大量服务器- 用户
分布广泛
,网络情况复杂:网络运营商 安全
环境恶劣:黑客的攻击- 需求
快速变更
,发布频繁:快速适应市场,满足用户需求 渐进式
发展:与传统软件产品或企业应用系统一开始就规划好全部的功能和非功能需求不同,几乎所有的大型互联网网站都是从一个小网站开始的,渐进地发展起来的
大型网站架构演化过程
初始阶段的网站架构

应用服务和数据服务分离

使用缓存改善网站性能

使用应用服务器集群改善网站的并发处理能力

数据库读写分离

使用反向代理和CDN 加速网站晌应

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

使用NoSQL 和搜索引擎

业务拆分

分布式服务

通过服务的分布式,各个应用能更好的独立发展,实现了从依赖模块到依赖服务的过渡。将通用的公共服务独立出来,也方便做服务管控,比如对各个应用的服务请求进行监控,在高峰时期限制、关闭某些应用的访问等。
大型网站架构价值观与设计误区
价值观
核心价值
随网站所需灵活应对,大型网站不是从无到有一步就搭建好一个大型网站,而是能够伴随小型网站业务的渐进发展,慢慢地演化成一个大型网站。
驱动力量
网站的业务发展—业务成就了技术,事业成就了人,而不是相反。
设计误区
一味追随大公司的解决方案。
为了技术而技术,常见问题。
企图用技术解决所有问题:技术是用来解决业务问题的,而业务的问题,也可以通过业务的手段去解决。