2015-12-23 10:15
吴冬勇
大型网站架构演化发展历程
-
初级阶段
初级阶段 - 应用服务和数据服务分离
瓶颈:服务器之间的通信 - 使用缓存改善网站性能
- 应用服务器集群
- 数据库读写分离
- 使用反向代理和CDN,加速网站响应
- 分布式文件系统和分布式数据库系统
- 根据业务拆分系统
大型网站的架构要素
- 性能
- 可用性:避免网站出现不可用
- 伸缩性:能够用加减服务器的方式解决增长需求
- 扩展性
- 安全性
网站架构原则&要避免的误区
- 按需设计,切勿求大
- 避免为技术而技术
- 避免企图用技术解决所有问题
- 先从小事做起 ,基础决定高度
Web前端系统如何提升性能
- 减少HTTP请求,js/css文件的合并
- 利用浏览器的缓存功能
- CSS放上面,js放下面
- 减少cookie的传输
- 优化和精简JS
- 善于Ajax
- 配置ETags(多服务器集群的时候无法使用)
- Gzip压缩
- CDN加速
- 反向代理
服务端的代码优化
1.数据库访问性能优化
(1)减少数据库连接打开的时间
(2)返回多个数据集
(3)。。。
2.减少装箱/拆箱的操作
3.部署的代码一定要禁用调试模式
4.每个方法尽量高效(一个方法只做一件事)
5.异步操作,分时计算
6.避免到服务器的不必要往返过程
7.避免不必要的重定向
8.不要依赖代码的异端
.NET MVC 服务端代码的优化
1.避免传入NULL值给View
2.关闭Web.config的debug模式
3.对热点常用数据使用适当的缓存策略
数据访问层的提升——缓存系统
缓存的作用
1.减少数据库访问,降低数据库的负荷和压力
2.速度快,减少重复计算,降低应用服务器的负载
如何用好缓存
1.热点数据用缓存,不是热点数据少用
2.频繁写的数据慎重
如何保证数据的一致性
1.设置缓存失效时间
2.修改操作后主动清空缓存
怎么使用好缓存(缓存策略的设计)
分布式缓存技术:
目的:保证缓存的可用性;环节大用户量下,访问缓存的压力
架构方式:以JBoss Cache
MC分布式缓存的路由算法
缓存命中率
加服务器(不能停止现有服务)对命中率是否有影响
网友评论