大型网站的核心架构要素主要包括性能、可用性、伸缩性、扩展性、安全性5个方面。
一、高性能
性能优化手段:
1. 前端端:a. 使用缓存;b. 减少cookie传输;c. 页面压缩;d. 使用CDN;
2. 应用服务器端:a. 使用缓存;b. 异步(消息队列);c. 集群;
3. 数据库端:a.索引;b. 缓存; c. SQL优化; d. Nosql
衡量网站性能指标:响应时间、TPS、系统性能计数器。
二、可用性
网站高可用的主要手段是冗余。
对于应用服务器而言,可以使用集群+负载均衡的手段,当然,服务器不能保存状态信息(session)。
对于存储服务器而言,可以使用实时备份+数据转移的手段实现冗余。
三、伸缩性
伸缩性好的架构很容易向集群中添加新的服务器,从而使系统的处理能力无限扩展。
对于应用服务器来说,不保存状态信息,通过负载均衡解决加入新的服务器以后的负载问题。
对于缓存服务器来说,需要改进路由算法,解决加入新服务器以后缓存命中较低的问题。
对于SQL数据库来说,使用路由分区等手段将部署有多个数据库的服务器组成集群。
对于NoSQL数据库来说,他们先天对伸缩性支持较出色。
四、扩展性
扩展性好的架构,增加新的业务产品时,可以实现对现有产品透明无影响。
主要手段:消息队列、分布式服务。