对于J2EE,我们知道当开发应用时,在架构设计阶段的决定将对应用的性能和可扩展性产生深远的影响。现在当开发一个应用项目时,我们越来越多地注意到了性能和可扩展性的问题。应用性能的问题比应用功能的不丰富问题往往更为严重,前者会影响到所有用户,而后者只会影响到碰巧使用该功能的那些用户。

作为应用系统的负责人,一直被要求"要少花钱多办事"----用更少的硬件,更少的网络带宽,以及更短的时间完成更多的任务。J2EE通过提供组件方式和通用的中间件服务是目前首选的最优方式。而要能够构建一个具有高性能和可扩展性的J2EE应用,需要遵循一些基本的架构策略。

1. 缓存(Caching)

简单地说,缓存中存放着频繁访问的数据,在应用的整个生命周期中,这些数据存放在持久性存储器或存放在内存中。在实际环境中,典型的现象是在分布式系统中每个JVM中有一个缓存的实例或者在多个JVM中有一个缓存的实例。

缓存数据是通过避免访问持久性存储器来提高性能的,否则会导致过多的磁盘访问和过于频繁网络数据传输。

2.复制

复制是通过在多台物理机器上创建指定应用服务的多个拷贝来获得整体更大吞吐效率。理论上看,如果一个服务被复制成两个服务,那么系统将可处理两倍的请求。复制是通过单一服务的多个实例的方式从而减少每个服务的负载来提高性能的。

3.并行处理

并行处理将一个任务分解为更为简单的子任务,并能够同时在不同的线程中执行。

并行处理是通过利用J2EE层执行模式的多线程和多CPU特点来提高性能。与使用一个线程或CPU处理任务相比,以并行方式处理多个子任务可以使操作系统在多个线程或处理器中进行分配这些子任务。

4.异步处理

应用功能通常被设计为同步或串行方式。异步处理只处理那些非常重要的任务部分,然后将控制立即返回给调用者,其他任务部分将在稍后执行。

异步处理是通过缩短那些在将控制返回给用户之前必须处理的时间来提高性能的。虽然都做同样多的事情,但是用户不必等到整个过程完成就可以继续发出请求了。

5.资源池

资源池技术使用的是一套准备好的资源。与在请求和资源之间维持1:1的关系的不同,这些资源可被所有请求所共享。资源池的使用是有条件的,需要衡量下面两种方式的代价:

A、维持一套可被所有请求共享资源的代价

B、为每个请求都重新创建一个资源的代价

当前者小于后者时,使用资源池才是有效率的。

转载于:https://www.cnblogs.com/qqzy168/p/3217072.html

构建高性能J2EE应用的五种核心策略相关推荐

  1. 构建高性能J2EE应用的十个技巧

    from:http://java.csdn.net/a/20100127/258560.html#postcomment 构建高性能的J2EE应用不但需要了解常用的实施技巧.下面介绍最常用的10种有效 ...

  2. left join 多条件_第九篇|Spark的五种JOIN策略解析

    JOIN操作是非常常见的数据处理操作,Spark作为一个统一的大数据处理引擎,提供了非常丰富的JOIN场景.本文分享将介绍Spark所提供的5种JOIN策略,希望对你有所帮助.本文主要包括以下内容: ...

  3. kubernetes 五种核心资源对象简介

    Namespace Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离. 默认情况下,kubernetes集群中的所有的Po ...

  4. 股权控制权的五种设计策略

    导读: 企业股权控制权有不少设计策略,本文重点讲述5种股权控制权的设计策略:一致行动人模式.虚拟股权模式.委托投票模式.双层企业架构模式.有限合伙平台模式. 一.一致行动人模式 所谓的"一致 ...

  5. 网页后端服务器宕机,nginx负载均衡的五种分配策略,避免后端服务器宕机造成网站不成访问...

    nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个. nginx的upstre ...

  6. JavaEE的13种核心技术规范

    来源:http://blog.csdn.net/zhenyuzhu/article/details/7324372 J2EE平台由一整套服务(Services).应用程序接口(APIs)和协议构成,它 ...

  7. 谈表达式树的缓存(7):五种缓存方式的总体分析及改进方案

    终于到了这个系列的最后一篇文章了,这个系列的文章本是许多话题的基础,却拖了那么长时间还没有完结.这篇文章主要讨论五种缓存方式各自的优劣,以及他们的性能关键在什么地方,如果要进行改进又有什么可选方案.在 ...

  8. 不知如何选股?不知哪种指标策略可靠?量化分析比较ASI、VR、ARBR、DPO、TRIX指标策略收益情况

    前言 从股票市场开始到现在,已经研究出了众多的指标,但是在使用的时候会发现,由于第二天股价的未知波动,指标显示的情况并不一定每次都准确,总是会存在误判的情况.对于这种不可避免的情况而言,我们只能想办法 ...

  9. 不知如何选股?不知哪种指标策略可靠?量化分析比较VRSI、BBIBOLL、WR、BIAS、RSI指标策略收益情况

    前言 从股票市场开始到现在,已经研究出了众多的指标,但是在使用的时候会发现,由于第二天股价的未知波动,指标显示的情况并不一定每次都准确,总是会存在误判的情况.对于这种不可避免的情况而言,我们只能想办法 ...

最新文章

  1. Apache反向代理设置【转载】
  2. (0048)iOS开发之内存管理探究
  3. mysql索引三个字段查询两个字段_mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...
  4. 2014 ACM/ICPC Asia Regional Xi'an Online
  5. 【转】Pro Android学习笔记(八):了解Content Provider(下中)
  6. FA_手工明细增加固定资产(流程)
  7. php获取laydate,laydate日历控件使用方法实例分享
  8. 学了c再自学python_学过一学期c语言的情况下如何自学python?
  9. 这是一段有毒的js代码,求大神解释!!!
  10. 金山云上市首日暴涨 40%,雷军:「All in」才有机会胜出
  11. [在Windows上使用Unix工具]MKS
  12. vue实现全国省市下拉联动菜单,适用于收货地址
  13. ctype函数_Ctype函数简介
  14. 职工个人所得税的计算方法
  15. 【Python】第2次作业:同符号数学运算
  16. 区块链学习笔记(3)--交易机制与双花
  17. ros驱动insta360 oneR运动相机遇到的坑
  18. 软件测试基础知识汇总(问答篇)
  19. mmdetection3d SUN RGB-D数据集预处理
  20. 如何下载PubMed收费文献

热门文章

  1. 【Network Security!】用户与组管理
  2. 文件操作03——图片文件合成器
  3. 单引号oracle如何转义_如何在Oracle中预测和转义单引号'
  4. vue中computed和methods区别
  5. element ui中走马灯放图片
  6. 什么是android刷机包,什么是安卓RAM?安卓RAM和安卓ROM有什么区别?
  7. oracle 测试数据类型,oracle修改表字段的数据类型测试
  8. 网站内容页面如何优化才利于排名提升?
  9. 网站建设难?三个技巧来帮你!
  10. 网站关键词优化首先要学会分类!