硬件架构
1、应用和数据分离:应用服务器--应用程序 (CPU)
文件服务器---资源文件 (硬盘)
数据库服务器----数据库
2、数据越来越大----+缓存服务器---数据缓存
3、巨大的并发和海量数据超过了每一台服务器的处理能力
使用集群分担服务器压力
集群---》处理能力,存储空间,通信能力
应用服务器集群:高性能,高可用,可伸缩性强
负载均衡服务器
常见负载均衡软件:Nginx;LVS;HAProxy
负载均衡算法:轮询,随机,最少连接===
Session管理:Session复制;Session绑定;使用其他替代方案;Session服务器
缓存特点:占用内存空间大,超过单台服务器;缓存数据置换需要耗费大量时间
缓存路由算法:
余数Hash算法
简单高效,伸缩性差;
一致性Hash算法
常见缓存系统:JBossCache;Redis;Memcached
数据库特点:占用磁盘空间大,超过单台服务器;访问频繁;读大于写;必须保证数据的可靠存储 --------主从分离(读写分离)
软件架构
----性能;扩展性;安全性
web前端性能优化:减少http请求---合并静态资源文件;
使用浏览器缓存;启用压缩;
减少cookie传输---请求静态资源时使用独立域名
代码性能优化:多线程;资源复用---单例,对象池;
数据结构----选择合适的结构表示数据;垃圾回收;异步