.NET高性能系统架构技术浅谈

2015-12-23 10:15
吴冬勇

大型网站架构演化发展历程

  • 初级阶段


    .NET高性能系统架构技术浅谈_第1张图片
    初级阶段
  • 应用服务和数据服务分离
    瓶颈:服务器之间的通信
  • 使用缓存改善网站性能
  • 应用服务器集群
  • 数据库读写分离
  • 使用反向代理和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分布式缓存的路由算法
缓存命中率
加服务器(不能停止现有服务)对命中率是否有影响

你可能感兴趣的:(.NET高性能系统架构技术浅谈)