为什么80%的码农都做不了架构师?>>>
(1)大型网站软件系统的特点
高并发,大流量;高可用;海量数据;用户分布广泛,网络情况复杂;安全环境恶劣;需求快速变更,发布频繁;渐进式发展。
(2)大型网站架构演化历程
初始阶段的网络架构(单服务器) -> 应用服务和数据服务分离(应用,文件,数据。三台服务器) -> 使用缓存改善网站性能(本地缓存,远程缓存) -> 使用应用服务器集群改善网站的并发处理能力(负载均衡) -> 数据库读写分离(主从) -> 使用反向代理和CDN加速网站响应 -> 使用分布式文件系统和分布式数据库系统(庞大的单表服务) -> 使用NoSQL和搜索引擎 -> 业务拆分(超链接或消息队列对应用之间建立关系) -> 分布式服务(抽取公共业务,独立部署)
CDN和反向代理的基本原理都是缓存。
CDN:部署在网络提供商的机房,用户请求服务时,可以从距离自己最近的提供商机房获取数据;
反向代理:部署在网站的中心机房,当用户请求到达中心机房后,先访问反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,则直接将其返回给用户。
(3)大型网站架构演化的价值观
1. 大型网站架构技术的核心价值是随网站所需灵活应对。
2. 驱动大型网站技术发展的主要力量是网站的业务发展。
(4)网站架构设计误区
1. 一味追随大公司的解决方案
2. 为了技术而技术
3. 企图用技术解决所有问题