山那边是海 发表于 2015-1-18 11:35:22

JAVA教程之揭开J2EE集群的奥秘面纱(一):甚么是J2EE集群仓酷云

手机用到的是用j2me所编出来的小程序。前文汇总和PDF下载:揭开J2EE集群的奥秘面纱
叙言
愈来愈多的关头使用运转在J2EE(Java2,EnterpriseEdition)中,这些诸如银行体系和账单处置体系必要高的可用性(HighAvailability,HA),同时像Google和Yahoo这类年夜体系必要年夜的伸缩性。高可用性和伸缩性在明天高速增加的互毗连的天下的主要性已证明了。eBay于1999年6月停机22小时的变乱,中止了约230万的拍卖,使eBay的股票下落了9.2个百分点。
J2EE集群是用来供应高可用性和伸缩性服务,同时撑持容错处置的一种盛行的手艺。可是,因为J2EE标准缺少对集群的撑持,J2EE供给商完成集群的办法也各别。这给J2EE架构师和开辟职员带来了良多坚苦。以下是几个罕见的成绩:


[*]为何带集群功效的贸易J2EE服务器产物云云高贵?(10倍于不带集群功效的产物)
[*]为何基于单服务器情况构建的使用不克不及在集群中运转?
[*]为何使用在集群情况中运转得很慢,但在非集群情况中却快很多?
[*]为何集群的使用移植到其他服务器中失利?
了解这些限定和要素的最好办法是进修他们的完成体例。
基础术语
在我们会商分歧的集群完成之前,先谈谈几个观点。这有助于了解分歧的J2EE集群产物分歧的计划了局和观点:
伸缩性(Scalability):
在一些年夜的体系中,展望终极用户的数目和举动长短常坚苦的,伸缩性是指体系顺应不休增加的用户数的才能。进步这类并发会话才能的一种最直不雅的体例就增添资本(CPU,内存,硬盘等),集群是办理这个成绩的另外一种体例,它同意一组服务器组在一同,像单个服务器一样分管处置一个沉重的义务。
高可用性(Highavailability):
单一服务器的办理计划并非一个强健体例,由于简单呈现单点生效。像银行、账单处置如许一些关头的使用程序是不克不及容忍哪怕是几分钟的逝世机。它们必要如许一些服务在任什么时候间都能够会见并在可预期的公道的工夫周期内有呼应。集群计划经由过程在集群中增添的冗余的服务器,使得在个中一台服务器生效后仍能供应服务,从而取得高的可用性。
负载平衡(Loadbalancing):
负载平衡是集群的一项关头手艺,经由过程把哀求分发给分歧的服务器,从而取得高可用性和较好的功能。一个负载平衡器能够是从一个复杂的Servlet或Plug-Ins(比方一个Linuxbox使用ipchains来完成),到高贵的内置SSL减速器的硬件。除此以外,负载平衡器还需实行一些其他的主要义务,如“会话胶粘”让一个用户会话一直存在一个服务器上,“安康反省”用于避免将哀求分发到已生效的服务器上。有些负载平衡器也会介入我们上面将要谈到“生效转移”历程。
容错(Faulttolerance):
高可用性意味着对数据准确性的请求不那末高。在J2EE集群中,当一个服务器实例生效后,服务仍旧是无效的,这是由于新的哀求将被冗余服务器处置。可是,当一个哀求在一个正在生效的服务器中处置时,大概失掉不准确的了局。不论有几个毛病,容错的服务应该能确保有严厉的准确的举动。
生效转移(Failover):
生效转移是集群顶用来猎取容错才能的另外一项关头的手艺。当一个结点生效后,经由过程选择集群中的另外一个结点,处置将会持续而不会停止。转移到另外一个结点能够被显式的编码,或是经由过程底层平台主动地通明地路由到另外一个服务器。
等幂办法(Idempotentmethods):
等幂办法是指如许一些办法:反复用不异的参数挪用都能失掉不异的了局。这些办法不会影响体系形态,能够反复挪用而不必忧虑改动体系。比方:getUsername()就是等幂的,而deleteFile就不是。当我们会商HTTPSession生效转移和EJB生效转移时,它是一个主要的观点。
甚么是J2EE集群
一个无邪的成绩,不是吗?但我仍要用几句话和图往返答它。一般,J2EE集群手艺包含"负载平衡"和"生效转移"。



<br>
负载平衡
如所示,负载平衡意味着有很多客户端向方针对象同时收回哀求。负载平衡器在挪用者和被挪用者之间,分发哀求到与原始对象不异的冗余对象中。伸缩性和高可用性就是如许失掉的。



<br>
生效转移
如所示,生效转移与负载平衡分歧。偶然客户端会一连发哀求到方针对象,假如哀求两头方针对象生效了,生效转移体系将检测到此次失利,并将哀求重定向到另外一个可用的对象。经由过程这类体例能够取得容错才能。
假如你想晓得更多的有关J2EE集群的常识,你就会问到一个基础的成绩,“甚么对象能够集群?”和“在我的J2EE代码中那里会产生负载平衡和生效转移呢?”。这些都是用来了解J2EE集群的十分好的成绩。实践上,并非一切的对象都能被集群的,而且负载平衡和生效转移并非在J2EE代码一切中央都能产生。看看上面的例子代码:



<br>
例子代码
在ClassA的bussiness()办法中,instance1能够负载平衡吗?或是当其生效,能够生效转移到其他B的实例上吗?我想是不可的!对负载平衡和生效转移来讲,必需要有个拦阻器在挪用者和被挪用者之间分发或重定向哀求到分歧的对象上。ClassA和ClassB的实例是运转在一个JVM中严密耦合的,在办法挪用间到场分发逻辑十分坚苦。
甚么范例对象能够被集群?——只要那些能够被部署到散布式拓朴布局中的组件。
在我的J2EE代码中,甚么中央会有负载平衡和生效转移?——只在你挪用散布式组件的办法时。



<br>
散布式对象
在如所示的散布式情况中,挪用者和被挪用者被分别在有分明界限的分歧的运转容器中,这个界限能够是JVM,历程和呆板。
当方针对象被客户端挪用时,方针对象的功效是在容器中运转的(这就是为何我们说它是散布式的缘故原由)。客户端和方针对象经由过程尺度的收集协定通讯。这些特征就为一些机制供应了时机能够参与到办法挪用之间完成负载平衡和生效转移。
如,扫瞄器经由过程HTTP协定挪用JSP对象,JSP运转在WEB服务器中,扫瞄器只必要前往了局而不体贴它是怎样运转的。在上述场景中,一些工具就能够在扫瞄器与WEB服务器之间完成负载平衡和生效转移的功效。在J2EE平台,散布式手艺包含:JSP(Servlet),JDBC,EJB,JNDI,JMS,WEBService等。负载平衡和生效转移就产生在这些散布式办法被挪用时。在后续部分我们将具体会商这些手艺。
来自:http://blog.csdn.net/ESoftWind/archive/2006/10/19/1341089.aspx译者:ESoftWind

在1995年5月23日以“Java”的名称正式发布了。

只想知道 发表于 2015-1-21 10:39:31

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

小女巫 发表于 2015-1-24 16:50:24

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

变相怪杰 发表于 2015-2-2 11:10:13

是一种语言,用以产生「小应用程序(Applet(s))

兰色精灵 发表于 2015-2-7 18:32:41

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

飘灵儿 发表于 2015-2-9 00:15:46

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

简单生活 发表于 2015-2-18 10:32:48

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

蒙在股里 发表于 2015-2-28 19:55:03

Java是一种计算机编程语言,拥有跨平台、面向对java

因胸联盟 发表于 2015-3-10 07:48:39

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

灵魂腐蚀 发表于 2015-3-17 05:10:29

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

第二个灵魂 发表于 2015-3-20 20:41:36

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

山那边是海 发表于 2015-3-21 22:17:30

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

admin 发表于 2015-4-1 15:38:59

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

小魔女 发表于 2015-4-12 21:07:56

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

海妖 发表于 2015-4-14 13:54:28

是一种为 Internet发展的计算机语言

飘飘悠悠 发表于 2015-4-21 22:27:52

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

再现理想 发表于 2015-4-25 17:21:00

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

柔情似水 发表于 2015-6-9 01:57:55

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

活着的死人 发表于 2015-6-16 04:14:44

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

谁可相欹 发表于 2015-6-23 21:46:11

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
页: [1] 2
查看完整版本: JAVA教程之揭开J2EE集群的奥秘面纱(一):甚么是J2EE集群仓酷云