仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 545|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA网页设计J2EE clustering 2---有些老了

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:24:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。j2eeJ2EEclustering2
集群和堕落恢复服务
在一台server上供应J2EE服务比拟在全部集群中供应来讲是微乎其微的.鉴于集群手艺的庞大性,每一个applicationserver有本人独到的完成体例.你应当向供给商懂得他们怎样完成集群和entitybean,statelesssessionbean,statefulsessionbean和JMS的堕落恢复.很多供给商传播鼓吹本人撑持集群化组件,但他们对此的界说常常扳连到集群中的组件.比方,BEAWebLogicServer5.1撑持集群化的statefulsessionbean,但假如server自己溃散了,其上一切形态也丧失了.客户只得从头创立statefulsessionbean,使得本来的在集群中就不成用了.直到BEAWebLogic6.0公布,statefulsessionbean才完成内存复制来集群化和堕落恢复.
一切applicationservers撑持EJBclustering,但对能够设置的主动堕落恢复的撑持有很年夜的分歧.现实上.有些applicationservers其实不撑持EJBclient的主动堕落恢复.比方,SybaseEnterpriseApplicationServer撑持statefulsessionbean堕落恢复,条件是你从数据库或经由过程序列化loadbean的形态.如后面所提到的,BEAWebLogic6.0经由过程内存复制bean的形态来撑持statefulsessionbean的不对恢复.年夜多半applicationserver能够在集群中运转JMS,但对团体定名的Topics和Queues不供应负载平衡和堕落恢复.如许,你大概就必要购置可集群的JMS产物,如SonicMQ,来取得Topics和Queues的负载平衡.

另外一个很主要的思索要素,我们如今要提到的是:HttpSession堕落恢复.

HttpSession堕落恢复
当本来为用户创立session的服务器溃散了,HttpSession堕落恢复同意用户无缝地从另外一台server上取得session信息.BEAWebLogicServer完成了session信息内存复制,而HPBluestoneTotal-e-Server接纳会合式sessionserver,它带有HA的备份.SilverStreamApplicationServer和SybaseEnterpriseApplicationServer接纳会合式数据库或文件体系,每一个applicationservers都从中读写.
用数据库/文件体系完成的session耐久性的次要弱点在于:当存储年夜的或良多对象在session中时无限的伸缩性.用户每次向HttpSession增添一个对象,session中一切的对象都要序列化并写进数据库或共享的文件体系.年夜多半用数据库完成session耐久化的applicationserver都主意只管罕用session存储object,但这会限定Webapplication的布局和计划,出格是用HttpSession存储用户数据时.

基于内存的session耐久性把内存中的session信息写到一个备份服务器上,有两种做法.第一种把HttpSession信息写到一个会合式形态服务器(centralizedstateserver).集群中的一切呆板都把HttpSessionobjects写到这台server上.第二种办法,集群中每一个节点恣意地选择一个节点存储内存中的session信息.每一个用户向HttpSession增添object,该object被独自序列化在写进那台backupserver.

下面两种办法中,假如集群中的呆板数较少,用专门的stateserver比恣意指定backupserver要好,如许能够节俭CPU来处置transaction和静态网页的天生.

另外一方面,当集群的呆板数很年夜时,专门的stateserver就成为瓶颈,而向恣意指定的backupserver复制内存的损耗将跟着呆板数的增加而线性增加.当增添呆板时,用专门的stateserver,你必要为它加上更多的RAM和CPU.用恣意指定的backupserver,你仅仅增添呆板罢了,session会均匀地散布在一切呆板之间.基于内存的耐久化供应了天真的Webapplication计划,范围和高牢靠性.

如今我们将反省一下单一点失利.

单一点失利
未供应备份的集群服务会形成单一点失利,他们会形成全部集群或部分使用溃散.比方,WebLogicJMS在集群中仅能有一个Topic运转在一台呆板上.假如那台呆板可巧溃散了,那使用中依附JMSTopics的部分就不克不及事情,直到另外一个WebLogicinstance启动起来(注重只要durablemessage才干在新的serverinstance启动时被发送.)
反省一下你的集群是不是存在单一点失利.假如有,你得估量一下如许是不是能满意使用需求.

上面说起伸缩拓扑.

天真的伸缩拓扑
集群还必要天真的拓扑结构.年夜多半applicationserver还能够充任HTTPserver,见.

.多合一拓扑

当你的website年夜多半是静态网页时,这类布局不错.但是,当年夜多半是静态页面时,要扩大网站的价值就十分高贵了,由于你要增添applicationserver用于静态HTML页面哀求.以是,得当的做法是:要扩大静态部分,增添Webserver,要扩大静态部分,增添applicationserver,如.


.分开的拓扑

上图的布局次要的缺点在于:增添了静态页面哀求提早.可是比拟天真的自力扩大而言,微乎其微.

最初,对applicationserver的会商停止于保护性.

保护性
集群中大批呆板总制止不了保护成绩:保持集群运转,关照使用的改动.Applicationservers应当供应agent来感知次要服务的溃散,然后从头启动它们.大概激活backupserver.更进一步,applicationserver应当供应一个烦琐的办法来更新和同步集群中一切的server.
SybaseEnterpriseApplicationServer和HPBluestoneTotal-e-Server供应文件和设置同步服务.SybaseEnterpriseApplicationServer在主机,组和集群level上供应这些服务.Bluestone则仅供应主机level的.假如要deploy年夜的application或良多application,就要花很长的工夫.BEAWebLogicServer仅供应设置同步.这二者中,设置同步加上storageareanetwork更能较好地事情,由于能够把变更写进一个逻辑存储介质,如许一切的呆板就可以吸收到applicationfile的变更.每台呆板只必要从一台会合式configurationserver上吸收设置变更就能够了.SilverStreamApplicationserver用dynamicclassloader从数据库中载进applicationfiles和configuration.dynamicclassloader使得运转中的applicationserver吸收变更更便利.

我们已会商了applicationserver必要思索的主要特性.上面就依据我们的原则对照一下4个盛行的applicationserver.

ApplicationServer对照
既然我们进修了关于集群的一样平常常识,让我们把注重力会合在各个applicationserver上,把所学的和实际天下接洽起来.我们要对照的是:

HPBluestoneTotal-e-Server7.2.1
SybaseEnterpriseApplicationServer3.6
SilverStreamApplicationServer3.7
BEAWebLogicServer6.0
每一个applicationserver的会商都包括一张HA布局图,接着是它的主要特性的小结.

HPBluestoneTotal-e-Server7.2.1

.HPBluestone7.2.1拓扑

集群一样平常特征小结:
Bluestone完成的是自力的JNDItree集群.作为plug-in运转在Webserver中的LBB,供应HTTP哀求的负载均衡和堕落恢复服务.LBB晓得哪台UBS(universalbusinessserver)上运转着甚么application,能够准确地定向流量.经由过程EJBProxyService和ProxyLBB撑持对stateful,statelesssessionbean和entitybean的办法间堕落恢复.EJBProxyService的次要弱点在于增添了每一个EJB哀求的提早,并且它同UBS运转在统一呆板上.EJBProxyService和UBSstub撑持UBS溃散的情形下的堕落恢复,可是不撑持硬件溃散的堕落恢复.后者呈现的情形下,堕落恢复是经由过程客户端设置apserver.txt或ProxyLBB对apserver.txt设置.客户真个apserver.txt内里列出了集群中一切的组件.当有新的组件到场时,一切客户必要用BAM(BluestoneApplicationManager)更新该文件或手工逐一主机地更新.在ProxyLBB处设置apserver.txt将用户和集群中的变更断绝,但为EJB哀求引进了新的提早.HPBluestone是独一的一个供应集群化和负载平衡JMS的applicationserver.

集聚集中工夫:
绝对会合式和全局共享式JNDItree而言,起码.

HttpSession堕落恢复:
会合式stateserver和backupstateserver或数据库,内存复制.

单一点失利:


天真的集群拓扑:
撑持一切集群拓扑.

保护:
Bluestone在保护方面赛过别的server.Bluestone供应一个静态使用加载器(dynamicapplicationlauncherDAL),供LBB在使用程序或呆板溃散时挪用.DAL可以在主机或备份机上重启使用程序.别的,Bluestone还供应一个设置和公布工具,叫BluestoneApplicationManager(BAM),用来deployapplicationpackage和它们的相干文件.这个工具独一的弱点是一次只能设置一台呆板--对年夜型集群用起来就不便利了.

SybaseEnterpriseApplicationServer3.6

SybaseEnterpriseApplicationServer3.6拓扑

集群一样平常特征小结:
EnterpriseApplicationServer完成的是会合式JNDItree集群,用硬件负载均衡器来完成HTTP哀求的负载平衡和堕落恢复.一个集群中的两台nameservers各自能够独自处置HTTPrequest,可是为功能思索,最好仍是专门处置JNDIrequest.

EnterpriseApplicationServer3.6没有Webserverplug-in,但到仲春的3.6.1EBF(ErrorandBugFixes)版就会有了.它撑持stateful,statelesssessionbean和entitybean的办法间堕落恢复.记着EnterpriseApplicationServer病危供应任何监督代办署理或静态使用程序加载器,你必要为单一点失利或主动server重启购置第三方产物,如VeritasClusterServer.EnterpriseApplicationServer不撑持JMS.

集聚集中工夫:
会合工夫取决于nameserver的数目和成员server的数目.在三种集群完成体例中,会合式JNDItree集群的会合度是最差的.只管会合工夫目标很主要,server能够在把对象bind到nameserver的同时就入手下手吸收哀求(固然,保举最好不要如许做).

HttpSession堕落恢复:
HttpSession堕落恢复用会合式数据库完成,不撑持内存复制.

单一点失利
假如运转多台nameserver,则没有单一点失利.

天真的集群拓扑:
拓扑布局受限于没有Webserverplug-in.

保护:
Sybase利用文件和设置同步,为applicationdeployment供应了最好的选择.它能够在component,package,servlet,application,乃至Webapplicationlevel上同步.你还能够选择同步全部集群,一组呆板或单个主机.很棒的功效!可是假如集群中的呆板太多,同步就要延续相称长一段工夫.它的一个缺点是没有静态使用程序加载服务,这意味着你必需购置第三方产物,如VeritasClusterServer.

SilverStreamApplicationServer3.7

.SilverStreamApplicationServer
dispatcher拓扑.
.SilverStreamApplicationServer
WSI拓扑

集群一样平常特征小结:
当设置SilverStream集群时,有两种设置计划:基于dispatcher的和基于Webserver集成模块(Webserverintegration-moduleWSI)的.在基于dispatcher的集群中,用户毗连dispatcher或基于硬件的dispatcher--比方Alteon180e,然后dispatcher将HTTP重定向到及大众的一台呆板上.从谁人时候起,用户与那台server就在物理上绑定了.故这类体例下,一个集群和一台server没有区分.次要的弱点在于:静态部分和静态部分不克不及自力地扩大.

在基于WSI的集群中,用户先毗连dispatcher,后者把持webserver的负载均衡和HTTP哀求不对恢复.每一个Webserver有一个plug-in指向一个位于集群前真个负载均衡器.WSI集群不利用重定向,每一个HTTP哀求能够在任何一台呆板上被均衡负载.副负载均衡器仅当applicationserver层溃散时用.AWSI布局优于dispatcher布局:能自力扩大静态和静态部分.可是,次要弱点是必要ArgoPersistenceManager作HttpSession堕落恢复.在任何一种体例中,用户都不克不及失掉办法间的不对恢复.EJB堕落恢复完整成为程序员的义务.最初,SilverStream不撑持集群化JMS.

HttpSession堕落恢复:
SilverStream用会合式的数据库和ArgoPersistenceManager供应HTTPSession堕落恢复.不幸的是,这个办理计划具有一切权成绩.不利用惯例的把session信息存进数据库的办法,而利用一个产物的ArgoPersistenceManagerclass--一年夜缺憾.

集聚集中工夫:
绝对会合式和全局共享式JNDItree集群,起码.

单一点失利:
以上布局皆没有.

天真的集群拓扑:
撑持一切集群拓扑.

保护:
缓存办理器和静态class-loader为deploy和更新运转着的使用程序供应了便利的路子,基础不打搅以后举动的client.当集群中的一台server上的使用更新时,更新的部分写进数据库,然后缓存办理器把一切呆板上的缓存设为有效,强制它们下次从头猎取新的application.只要一个弱点,就是要花工夫把使用从数据库中掏出,调进内存中.

BEAWebLogicServer6.0

.BEAWebLogicServer6.0

集群一样平常特征小结:
WebLogicServer完成的是全局共享式的JNDItree集群.这类事情体例下,当一台server启动时,把本人的JNDI
tree写进全局共享的JNDItree.然后server用这个全局的tree的备份来供应服务,利用户能感知集群中的一切对象.用户用的stub能感知全部集群,意味着它们向原定的server哀求,但同时具有别的applicationserver上复成品的信息.恰是因为这点,stub能够通明地举行不对恢复.WebLogicServer的一个举世无双的特征就是statefulsessionbean的内存复制和可设置的EJBremoteobjects主动堕落恢复.WebLogic把clusterable界说为一个在集群中的服务.JMS就是如许一个服务,可是每一个TopicorQueue仅在一台server上运转,以是不克不及负载平衡和堕落恢复--WebLogicJMS完成的一年夜弱点.

HttpSession堕落恢复:
WebLogicServer经由过程向恣意指定的backupserver或databaseserver复制内存中形态来完成HttpSession堕落恢复.集群中地每台呆板选择一台分歧的呆板.假如主server溃散了,backupserver酿成主server,再从头选择一台backupserver.WebLogic有一个独一的特征:cookie的自力性.HPBluestone和EnterpriseApplicationServer都必要cookie才干举行HttpSession堕落恢复,可是WebLogic可使用URL中加密的信息,把用户定向到backupserver上.

单一点失利:
JMS和Administrationserver.

天真的集群拓扑:
撑持一切集群拓扑.

保护:
WebLogic的弱势在于保护.只管BEA已在设置同步方面接纳了主动的措施,WebLogicServer仍是没有任何监督代办署理,静态使用加载器,或文件同步服务.以是你必要为单一点失利或HA购置第三方计划.假如你接纳了SAN,你就不用文件同步服务了,但年夜多半开辟者才方才入手下手熟悉到SAN的优点.

剖析
整体来讲BEAWebLogicServer6.0最为健壮,集群完成得最完全.HPBluestoneTotal-e-Server2.7.1,SybaseEnterpriseApplicationServer3.6,SilverStreamApplicationServer3.7顺次分列.

选择准确的applicationserver必要衡量折中.假如你的使用中有EJBclients(applet和applications),Webclients,对HttpSession大批利用(为了caching),请求扩大浅易和堕落恢复,你必要BEAWebLogic6.0.假如你的application必要大批利用JMS,尽年夜多半client是Webclient,Bluestone大概更好一些.从集群地角度说,SybaseEnterpriseApplicationServer3.7短少主要的集群特征,比方JMS,HttpSession内存复制,Webserverplug-in等.可是,SybaseEnterpriseApplicationServer3.7切实其实带来了文件和设置同步服务.假如你利用SAN,这些有点就微乎其微了.SilverStreamApplicationServer的集群完成得最不完全,短少集群化的JMS,HttpSession内存复制和堕落恢复等.
结论
在本文中你取得了集群的一样平常熟悉,集群的办法和主要的集群服务.我们审阅了每一个applicationserver的优弱点,会商了和集群有关的特征.有了这些常识今后,你就明白怎样创建高牢靠性和伸缩性的集群.但这仅仅是进修的入手下手,到表面找一些evaluationclusteringlicense,和applicationserver,考证一下.

第二部分中,我们要入手下手写代码,考证applicationserver供给商的答应.我们还将用J2EEJavaPetStore例程做负载和集聚集中度测试.


什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。
小妖女 该用户已被删除
沙发
发表于 2015-1-20 23:56:01 来自手机 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
谁可相欹 该用户已被删除
板凳
发表于 2015-1-22 14:52:24 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
再见西城 该用户已被删除
地板
发表于 2015-1-29 18:16:23 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
金色的骷髅 该用户已被删除
5#
 楼主| 发表于 2015-2-6 03:08:12 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
简单生活 该用户已被删除
6#
发表于 2015-2-15 07:20:55 | 只看该作者
是一种为 Internet发展的计算机语言
7#
发表于 2015-3-4 03:32:15 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-11 01:14:22 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
柔情似水 该用户已被删除
9#
发表于 2015-3-11 04:52:43 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
变相怪杰 该用户已被删除
10#
发表于 2015-3-17 20:55:54 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
分手快乐 该用户已被删除
11#
发表于 2015-3-25 02:04:39 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 19:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表