仓酷云

标题: JAVA教程之影响Java EE功能的十年夜成绩仓酷云 [打印本页]

作者: 若天明    时间: 2015-1-18 11:29
标题: JAVA教程之影响Java EE功能的十年夜成绩仓酷云
为什么外国人还要写那些框架进行代码封装,他们不就是为了别人使用时可以更简单么!如果要达到一个企业级项目的不用框架是很难的。小一些的项目还行,大的光是MVC模式的设计的编码量就够大的了。还有性能方面,单轮windows,这个工具是微软写的,。本文作者是一位有10多年履历的初级体系架构师,他的次要专业范畴是JavaEE、两头件和JVM手艺。他在功能优化和提拔方面也有很深入的看法,上面他将和人人分享一下罕见的10个影响JavaEE功能成绩。
1.缺少准确的容量计划

容量计划是一个周全的和开展的历程尺度,展望以后和将来的IT情况容量需求。制订公道的容量计划不但会确保和跟踪以后IT临盆才能和不乱性,同时也会确保新项目以最小的风险部署到现有的临盆情况中。硬件、两头件、JVM、调剂等在项目部署之前就应当筹办好。

2.JavaEE两头件情况标准不敷
“没有礼貌,不成周遭”。第二个对照广泛的缘故原由是JavaEE两头件大概基本架构不标准。在项目初始,新平台下面没有制订公道的标准,招致体系不乱性差。这会增添客户本钱,以是花工夫往制订公道的JavaEE两头件情况标准是必需的。这项事情应与初始容量计划迭代相分离。



<br>

3.Java假造机渣滓接纳过分

列位对“java.lang.OutOfMemoryError”这个毛病信息是否是很熟习呢?因为JVM的内存空间过分损耗(Java堆、本机堆等)而抛出的非常。



<br>

渣滓搜集成绩其实不必定会体现为一个OOM前提,过分的渣滓搜集能够了解成是JVMGC线程在短工夫里举行稍微或超量搜集汇合数据而招致的JVM停息工夫很长和功能下落。大概有以下几个缘故原由:

倡议:
4.与内部体系集成过量或过少
招致JavaEE功能差的第四个缘故原由是高散布式体系,典范案例是电信IT情况。在这个情况中,一其中间件范畴(比方,服务总线)很少会做一切的事情,而仅仅是把一些营业“托付”给其他部分,比方产物质量,客户材料和定单办理,到其他JavaEE两头件平台或遗留体系中,如撑持各类分歧的负载范例和通讯协定的年夜型机。



<br>

如许的内部体系挪用意味着客户真个JavaEE使用程序触发创立或重用套接字链接从内部体系中读写数据。依据营业流程的实行和完成能够设置成同步伐用或异步伐用。必要注重的是,呼应工夫会依据内部体系的不乱情况举行改动,以是经由过程得当的利用超时来回护JavaEE使用程序和两头件也长短常主要的。



<br>

上面这3种情形是常常呈现成绩和功能下降的中央:

最初,倡议多举行负面测试,这意味着必要“工资”制造发生这些成绩的前提,用来测试使用程序和两头件之间是怎样处置内部体系毛病。
5.缺少得当的数据库SQL调优和容量计划
人人大概会对这一个感应惊异:数据库成绩。年夜多半JavaEE企业体系是依附干系型数据库处置庞大的营业流程。一个基本踏实安定的数据库情况能够确保IT情况有范围的增加,来撑持日趋不休扩展的营业。


<br>

在实践中,与数据库相干的功能成绩是很罕见的。因为多半数据库事件处置都是由JDBC数据源实行的(包含干系耐久化API,比方Hibernate)。而功能成绩最后城市体现为线程堵塞。

以下是我在10年的事情中,常常呈现的关于数据库方面的成绩(以Oracle数据库为例):
倡议:
6.特定使用程序功能成绩
上面存眷的是对照严峻的JavaEE使用程序成绩。关于特定使用程序功能成绩,总结了以下几个点:
7.JavaEE两头件调优成绩
一样平常JavaEE两头件都已够用了,只是短少需要的优化。年夜多半JavaEE容器都能有多种计划供你的使用程序和营业历程选择。
假如没有举行得当的调剂和理论,那末JavaEE容器大概会处于一种悲观的形态。
下图是视图和反省列暗示例:


<br>

8.自动监控不敷

缺少监控,其实不会带来实践功能成绩,但它会影响你对JavaEE平台功能和安康情况的懂得。终极,这个情况能够到达一个破发点,这大概会表露出一些缺点和成绩(JVM的内存泄露,等等)。

以我的履历来看,假如一入手下手不举行监控,而是运转几个月大概几年后再举行,平台不乱性将年夜打扣头。
也就是说,改良现有的情况永久都不会晚。上面是一些倡议:
9.大众基本举措措施硬件饱和
这个成绩常常在有太多的JavaEE两头件情况跟着JVM历程被部署到现有硬件下面时看到。太多的JVM历程对无限的物理CPU中心来讲是一个真实的程序功能杀手。别的,跟着客户端营业的增加,硬件方面也必要再次思索。


<br>

10.收集提早

最初一个影响功能成绩的是收集,收集成绩时不时的城市产生,如路由器、互换机和DNS服务器失利。更罕见的是在一个高度分离的IT情况中按期或间歇性提早。上面图片中的例子是一个位于统一地区的Weblogic集群通讯与Oracle数据库服务器之间的提早。



<br>

间歇或按期的提早会触发一些主要的功能成绩,以分歧的体例影响JavaEE使用程序。

JDBC行数据“预取”、XML数据紧缩和数据缓存能够削减收集提早。在计划一个新的收集拓扑时,应当细心反省这类收集提早成绩。
但愿本文可以匡助您了解一些罕见的功能成绩和压力点,每一个IT情况都是举世无双的,以是文中提到的成绩纷歧定会是您碰到的,您能够把您碰到的成绩拿出来和人人一同分享一下!


专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。
作者: 再现理想    时间: 2015-1-19 20:06
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 谁可相欹    时间: 2015-1-20 08:07
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 蒙在股里    时间: 2015-1-20 17:43
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 乐观    时间: 2015-1-26 17:08
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 小妖女    时间: 2015-2-4 16:55
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 若天明    时间: 2015-2-5 07:59
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 简单生活    时间: 2015-2-9 22:42
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 海妖    时间: 2015-2-19 03:14
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 小魔女    时间: 2015-3-6 12:26
是一种使网页(Web Page)产生生动活泼画面的语言
作者: 小女巫    时间: 2015-3-9 14:57
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 灵魂腐蚀    时间: 2015-3-13 04:08
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 老尸    时间: 2015-3-20 12:13
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 精灵巫婆    时间: 2015-4-10 17:59
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2