• 关于大型门户网站系统的性能优化


       鉴于B/S架构在维护成本和客户端配置等方面所具有的绝对优势,越来越多的系统采用了B/S架构,包括ERP、CRM等管理系统也开始向Internet靠拢。而B/S架构的系统却往往很难预计到系统并发访问数有多少,系统往往在高并发访问量的时候出现性能瓶颈,具体表现为页面提示超时信息或者提示数据库抛出的异常信息。为此,针对于B/S架构的面向Internet的系统,尤其是像淘宝、当当网等日访问量超过20余万的大型门户网站进行性能优化是势在必行!

       针对大型门户网站系统的性能优化方案有以下几种:

    (1)页面静态化

       将动态页面采用静态的html页面文件代替!具体做法是在增加商品和更改商品信息时,将商品信息填充到模板页,并采用IO流生成对应的html商品信息文件,这样在下次用户点击查看商品信息等连接时,直接返回已经生成好的html静态页面即可,而不必临时访问数据库获取信息来填充动态页面,这样便避免了在高并发访问量时对数据库连接的争用,极大地减轻了数据库服务器端的压力!若系统并发访问数是一万的话,那将可以做到成万倍的性能提高!

       业界流行的技术有Velocity技术和freemark技术。前者历史悠久,功能的可扩展性强,可以轻松扩展Velocity未实现的功能,业界使用及其广泛;后者由于更晚出现,性能方面做了一些改进,也占据了一定的市场份额。

    (2)采用缓存技术

       缓存技术即在一定的时间间隔内保存用户第一次访问的信息,以便在用户下次访问相同资源时直接使用!常用的缓存产品有:

    OSCache(可以解决页面缓存也可以解决领域对象缓存)、EHCache(hibernate提供了,领域对象的缓存方案)、JbossCache(分布式缓存),其中JbossCache采用中央缓存服务器来缓存数据,以解决数据的一致性问题。

       A、页面缓存,即在View层缓存Html代码,具有较好的性能优化效果,缺点也很明显:页面信息无法做到实时更新!

    因为页面缓存在缓存有效期内不会访问数据库(但可以手动清空缓存),故无法做到数据的实时更新。只有对数据实时性要求不高的模块适合采用该技术,而像订单支付等功能模块则需要实时更新,不适合采用该技术!

      B、二级缓存,即在model层缓存domain对象。可以做到实时更新,但性能优化效果比不上页面缓存技术

    (3)数据库连接池技术

      通过缓存一定数量的数据库连接对象,以减少访问数据库时临时创建数据库连接的时间。

    (4)SSI技术

      服务器端静态包含技术。

      

      通过对以上各项性能优化技术的综合运用,可以显著提高系统性能,满足客户需求!

  • 相关阅读:
    函数式编程与命令式编程的学习难度比较
    Swfit4.0中JSON与模型原生互转(JSONEncoder/JSONDecoder的使用)
    元类型与类型的区别
    Swift
    swift类型操作规范
    PHP实现执行定时任务的几种思路详解
    基于ThinkPHP与阿里大于的PHP短信验证功能
    laravel中将session由文件保存改为数据库保存
    laravel5.*安装使用Redis以及解决Class 'PredisClient' not found和Fatal error: Non-static method Redis::set() cannot be called statically错误
    Python基础知识汇总
  • 原文地址:https://www.cnblogs.com/datastack/p/3815302.html
Copyright © 2020-2023  润新知