一、不知名的小网站 一台服务器满足要求
典型的技术:linux+mysql+PHP+apache
面临的问题:性能越来越差;越来越多数据导致存储空间不足
二、应用服务分离
应用服务器:需要更强大CPU
数据服务器:需要更快的硬盘和更高的内存
文件服务器:需要更大的硬盘
不同的服务器承担不同的角色->性能提升
面临的挑战:
数据库压力太大导致访问延迟,进而影响整个网站的性能,用户体验受影响
三、使用缓存改善性能
常用缓存:redis memcach
发展问题:请求连接有限,网站访问高峰期,应用服务器成为整个网站的瓶颈
四、应用服务集群
使用缓存后虽然大大减轻了数据库的读压力,有一部分缓存和全部写数据操作要访问数据库,用户到达一定规模后,数据库成了瓶颈
五、数据库读写分离
发展问题:地域网络差异大如何保证用户体验
六、反向代理,CDN加速
加快访问速度
减轻后端访问压力
面临问题:单数据服务器存不了数据
七、分布式文件系统,分布式数据库
发展问题:数据的存储需求和检索越来越复杂
字段差异大,骷髅表
复杂文本检索
八、使用NOSQL、搜索引擎
发展问题:迭代周期太快,牵一发而动全身
十、业务拆分
面临问题:
应用间的关系越来越复杂,应用中存在相同操作
后端数据库要被成千上万的应用服务连接,数据库连接资源不足
十一、服务化
架构思路
1、分而治之
2、随网站所需应对
3、业务驱动技术发展,技术反哺业务