24小时论文定制热线

热门毕设:土木工程工程造价桥梁工程计算机javaasp机械机械手夹具单片机工厂供电采矿工程
您当前的位置:论文定制 > 毕业设计论文 >
快速导航
毕业论文定制
关于我们
我们是一家专业提供高质量代做毕业设计的网站。2002年成立至今为众多客户提供大量毕业设计、论文定制等服务,赢得众多客户好评,因为专注,所以专业。写作老师大部分由全国211/958等高校的博士及硕士生设计,执笔,目前已为5000余位客户解决了论文写作的难题。 秉承以用户为中心,为用户创造价值的理念,我站拥有无缝对接的售后服务体系,代做毕业设计完成后有专业的老师进行一对一修改与完善,对有答辩需求的同学进行一对一的辅导,为你顺利毕业保驾护航
代做毕业设计
常见问题

大规模网络应用系统性能优化设计

添加时间:2019/08/08 来源:西南石油大学 作者:樊红林
本文采用Java Web应用程序分层管理的思想,着力解决现有网络应用系统实际项目开发过程中,因采用传统单层架构而存在的团队活动不协调、过程代码存在冗余、系统伸缩性严重受限等问题与不足。
以下为本篇论文正文:

摘要

  随着互联网的髙速发展、电子商务的不断兴起,越来越多的人通过使用网络平台来实现购物、查询基本信息等功能需求,随着访问用户量的提离,网络的平均响应时间就成了关键。传统方式是使用数据库连接池进行网络系统的优化,但是存在优化效率较低的问题。.本论文通过引入二级缓存和全文检索等优化技术,尽可能少地访问或不访问后台数据库,从而达到提高网络应用系统性能的目的,W此改善原有网络系统中存在的不足。

  本文采用Java Web应用程序分层管理的思想,着力解决现有网络应用系统实际项目开发过程中,因采用传统单层架构而存在的团队活动不协调、过程代码存在冗余、系统伸缩性严重受限等问题与不足。同时针对一般欢件开发过程中因存在过多配置文件而导致整个软件显得糜肿的问题,本文采用在Java代码中使用注解的方式,以减少使用不必要的配置文件,从而达到优化代码的目的。应用系统中经常会存在大量的用户频繁访问、但却相对稳定、不常改变的数据信息,它们在大多数的设计中都是通过直接由数据库进行查询的方式获取,从而导致时间开销太大,严重影响系统性能与用户体验。为此,本文采用Hibernate对象-关系映射与Lucene全文检索相结合的方式对系统中的常用数据信息建立索引,并将之存储于本地索引库文件或内存中,解决了何时在实体类上使用索弓I。当用户查询时,则可以直接通过索引获得数据,从而提高响应时间。针对其它那些用户经常访问、但读写比大于2:1的数据信息,本文采用EHCache结合Hibernate实现二级缓存的方式,将核也实体类进行缓存,进而提高系统的数据访问速度,同时实现自惠义缓存清除策略。除此之外,本文还尝试将Lucene全文检索与EHCache二级缓存通过Spring整合起来并应用于系统设计中,以期达到较少访问或不直接访问数据库的目的,进一步提离网络应用系统的响应时间。

  本文最后采用JMeter性能测试工具,对经加入上述优化方法所设许出的系统进行了相关性能测试,并与未使用上述优化方法的系统设计进行了全面的性能对比,证明了论文中所提出的各种优化方法与技术的有效性与可信性。

  关键词:分层管理:网络应用系统;Lucene; EHCache;性能优化

Abstract

  With the rapid development of Internet and E-commerce's rise, more and more people begin to use the network platform to implement their needs. Therefore, the average response time becomes a key factor. Traditionally, using database connection pool optimizes network system that presents low efficiency. In order to access database less and less, this thesis introduces the secondary cache, full-text search and other optimization techniques that can improve performance of the original project that is insufficient in present network system.

  In this thesis, Java Web application hierarchical management ideas is used to solve the existing development problems in project. The traditional single-layer structure results in team inconsistent development, redundant procedure code that is severely limited by system scalability. At the same time, there are too many bloated software problems, and this thesis uses annotation to reduce unnecessary use of configuration files, so as to achieve the purpose of optimizing the code. Generally speaking, application systems have a large number of users who frequently access to relatively stable, infrequently changed data so that results in too much time that seriously affects the system's performance and the user's experience. In this thesis, using a combination of Hibernate ORM and Lucene full-text indexes important data and then stores data in the local database files or memories. When user quering, data can be obtained directly through the index file to improve response time. For other users who frequently visit data that reading-writing ratio is greater than 2: 1 use Hibernate to achieve second-level cache EHCache. In addition, in order to achieve the purpose of improve the response time of network applications, this thesis also attempts to integrate Lucene and EHCache through the Spring and then applies to system.

  Finally, using JMeter performance testing tool tests design of the system, and the system design does not use the above optimization methods comparing with optimized system. At last the result proves that system that has techniques is effectiveness and credibility.

  Key words:Hierarchical Management; Network Application; Lucene; EHCache; Performance Optimization

  所谓大规模网络应用系统,常指那些用户众多、并发访问请求量大、系统可扩展性与可伸缩性要求较高的系统,例如淘宝、12306网站等等。随着全球范围内互联网经济的蓬勃发展及我国"互联网+"战略的发布,近年来我国大规模网络应用系统的数量和其用户数量都出现了井喷式的増长。根据CNNICW《中国互联网络发展状况统计》报告,截至2015年12月我国网民规模达6.88亿,全年共计新増网民巧51万人,互联网普及率为50.3%。随着用户数量的増长,各形各色的网络应用系统也相继出现,并且规模越来越大,网络并发访问量甚至呈指数倍地增长。因此,系统的性能(如访问响应时间、吞吐量高低)将直接影响用户的体验好坏。这时各种优化技术就变得极其重要,淘宝为代表的大数据流量处理的优化机制,从正面说明了提高网络系统优化的重要性;W中国铁路客户服务中也系统为代表的糟糕用户体验反馈,则从另一面说明了如今的网络应用系统对性能提出了更高的要求。网站在访问高峰期更会造成系统无法响应甚至造成整个系统雍痕,因此需要采取必要的优化方式。

  目前,国内外在大规模网络应用系统的性能优化方面己有大量尝试与实践,大致可分为前端优化技术和后端优化技术。前者主要包括页面静态优化、静态化插件工具、动态页面直接静态化等技术;后者比较常见的方式是使用数据库连接池、使用缓存、建立索引等。通过实际应用可发现,后端优化的效果往往超过前端。因此,针对系统后端进行优化成为现今研究的主要途径。宅米网CTO李智慧在《大型网站技术架构原理与案例分析》当中提出使用后端技术如缓存、索引在当今系统开发中的优越性。在实际开发中,使用缓存W及建立索引也是后端优化的比较常见的方式。企业实际应用项目开发过程中的经验表明,它们对改善系统的性能有着积极的作用,并且均有较多的开发工具与开发方法提供支持。

  传统方式对后台数据进行查询,一般都是通过SQL语句访问数据库进行查询,造成用户每次查询数据都要访问整个数据库,而且使用like关键字进行模糊查询的效率非常低,结果就是对整个网络应用系统的性能产生了较大的影响。因此需要选择专口的全文索引工具。在建立索引方面,目前最典型的一种工具是Lucene。它是Apache的一^t*开源子项目,可W很好地与实际工程开发项目相结合,因此越来越多的人开始使用Lucene进行项目开发。Michael McCandless在Lucene虹Action的例子中充分证明了Lucene索引对项目性能提高的重要性。同时由于网站数据访问通常遵循二八定律,即80%的访问落在20%的数据上町因此使用Lucene把索引用在20%的数据上是有意义的,这样能够尽量减少对数据库的访问。但是现有的项目使用索引,要么所有字段都加入索弓I,要么不使用索引进行优化,因此没有具体使用索引的标准。

  一般情况下,每次获取数据都要与数据库建立连接、传送数据、关巧连接等操作,这样会消耗过多的资源,而且操作步骤过多也会增加时间,如果把需要的数据放在本地磁盘或者缓存当中,那么直接从中获取数据的时间将会更短。网站性能优化第一定律就是优先考虑使用缓存优化性能。因此,使用缓存是系统性能优化的另一种重要技术。在此方面,目前也有较多的技术,例如OSCache、EHCache、MemCached等。其中,OSCache提供了在现有JSP页面之内实现快速内存缓冲的功能,但现今已经不再处于维护状态,因此开发人员对于其的选挥与使用也变得越来越少;MemCached是一个高性能的分布式内存对象缓存系统,用于动态Web应用1^;1减轻数据库负载。由于数据是保存在内存中的,因此显然需要有足够大的内存空间或者甚至需要搭建一个专口做内存的集群来保存数据,送样造成硬件的成本大大的増加,故还普及程度还不高。EHCache是一个开源的Java分布式缓存,具有简单、高性能、灵活等特点。由于Spring在3.1版本之后开始支持EHCache,并且两者有着较好的融合,因此越来越多的人开始选择EHCache。因此使用Lucene全文检索及EHCache成为了许多开发人员选择的对象。

  尽管Lucene、EHCache有很多人在用,但仍然有不足,主要表现在EHCache默认缓存算法(LRU)效率还可W继续提高、如何把Lucene与EHCache结合起来实现共同优化。因此,仍有必要继续研究。

大规模网络应用系统性能优化设计:

使用自定义缓存清除策略査询结果
使用自定义缓存清除策略査询结果

使用LRU缓存策略查询结果
使用LRU缓存策略查询结果

请求线程组设置
请求线程组设置

Lucene和EHCache査询结果图
Lucene和EHCache査询结果图

EHCache和Lucene加入同步锁后查询结果
EHCache和Lucene加入同步锁后查询结果

800个线程请求
800个线程请求

1000个线程请求
1000个线程请求

目录

  第一章 绪论
    1.1 研究背景及意义
    1.2 国内外研究概况
    1.3 论文的主要工作
    1.4 论文的组织结构
  第二章 相关技术研究与概述
    2.1 JAVA EE层次模型
    2.2 JAVA EE框架技术
    2.3 LUCENE全文索引
    2.4 缓存
    2.5 系统开发环境和工具
    2.6 本章小结
  第三章 基于JAVA EE框架的网站架构优化
    3.1 网站总体架构设计
    3.2 SSH2整合思路
      3.2.1 Struts2与Spring的整合原理
      3.2.2 Spring与Hibernate的整合原理
      3.2.3 注解配置
    3.3 SSH2框架的分层实现
      3.3.1 配置Struts 2
      3.3.2 配置 Hibernate 4.19
      3.3.3 配置Spring 3.2
      3.3.4 Spring对Struts2的整合对Hibernate的整合
      3.3.5 S州ng对Hibernate
    3.4 分层架构实现组织图
    3.5 系统应用
    3.6 本章小结
  第四章 基于索引优化的设计与实现
    4.1 全文检索
    4.2 LUCENE全文检索与数据库模糊查询
    4.3 HIBERNATE SEARCH整合LUCENE原理
    4.4 HIBERNATE SEARCH结合LUCENE应用实现
      4.4.1 建立索引
      4.4.2 检索器的实现
      4.4.3 应用实现
    4.5 增量索引
    4.6 JMETER测试
      4.6.1 试环境
      4.6.2 测试分析
    4.7 本章小结
  第五章 基于缓存优化的设计与实现
    5.1 EHCACHE缓存算法
    5.2 自定义缓存清除策略思路
    5.3 基于EHCACHE缓存优化与实现
      5.3.1 配置EHCache二级缓存
      5.3.2 改进的缓存替换策略实现
      5.3.3 自定义EHCache二级缓存测试
    5.4 同时实现LUCENE索引和EHCACHE二级缓存优化
    5.5 并发事务处理
    5.6 J1VIETER性能测试
      5.6.1 测试环境
      5.6.2 性能分析
    5.7 本章小结
  第六章 总结与展望
    6.1 论文总结
    6.2 工作展望
  参考文献
  致谢
  攻读学位期间的研究成果

(如您需要查看本篇毕业设计全文,请您联系客服索取)

相关内容
相关标签:Java毕业设计
好优论文定制中心主要为您提供代做毕业设计及各专业毕业论文写作辅导服务。 网站地图
所有论文、资料均源于网上的共享资源以及一些期刊杂志,所有论文仅免费供网友间相互学习交流之用,请特别注意勿做其他非法用途。
如有侵犯您的版权或其他有损您利益的行为,请联系指出,论文定制中心会立即进行改正或删除有关内容!