通过 Terracotta实现基于Tomcat的Web应用集群Word格式.docx

上传人:b****4 文档编号:17834263 上传时间:2022-12-11 格式:DOCX 页数:14 大小:23.51KB
下载 相关 举报
通过 Terracotta实现基于Tomcat的Web应用集群Word格式.docx_第1页
第1页 / 共14页
通过 Terracotta实现基于Tomcat的Web应用集群Word格式.docx_第2页
第2页 / 共14页
通过 Terracotta实现基于Tomcat的Web应用集群Word格式.docx_第3页
第3页 / 共14页
通过 Terracotta实现基于Tomcat的Web应用集群Word格式.docx_第4页
第4页 / 共14页
通过 Terracotta实现基于Tomcat的Web应用集群Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

通过 Terracotta实现基于Tomcat的Web应用集群Word格式.docx

《通过 Terracotta实现基于Tomcat的Web应用集群Word格式.docx》由会员分享,可在线阅读,更多相关《通过 Terracotta实现基于Tomcat的Web应用集群Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

通过 Terracotta实现基于Tomcat的Web应用集群Word格式.docx

ApacheTomcat

目前Terracotta官方支持的Tomcat版本为:

ApacheTomcat6.0.18

ApacheTomcat5.5.26

ApacheTomcat5.0.28

Terracotta3.0或更高版本

安装过程

在所有机器上安装Java

请参考目前支持的软硬件平台

在所有机器上安装Terracotta

选一台机器作为Terracotta服务器

在所有运行Tomcat的机器上也安装Terracotta,他们将称为Terracotta客户端

在应用服务器节点上安装Tomcat

把要部署的Web应用部署在所有Tomcat上

配置过程

下载附件中的tc-config.xml文件,保存到${TERRACOTTA_HOME}/tc-config.xml(Unix上)或者${TERRACOTTA_HOME}\tc-config.xml(Windows上)。

修改web-applications和web-application部分,把要共享session的应用的contex配置上:

<

web-applications>

<

web-application>

my_web_app1<

/web-application>

my_web_app2<

/web-applications>

 

您可能还需要修改Terracotta服务器的信息。

比如:

serverhost="

192.168.0.100"

>

!

--IPorhostnameofTCserver-->

dso-port>

9510<

/dso-port>

/server>

把配制好的tc-config.xml文件拷贝到所有机器上。

然后在每一台机器上,进入TERRACOTTA_HOME目录,运行:

UNIX/LINUX

bin/tim-get.shupgradetc-config.xml

Windows

bin\tim-get.batupgradetc-config.xml

配置Tomcat应用服务器

在Tomcat安装目录的bin子目录中创建startupTC.sh(Unix)或startupTC.bat(Windows)文件。

其内容为:

TC_INSTALL_DIR=<

本地Terracotta安装目录>

TC_CONFIG_PATH=<

本地tc-config.xml的完整文件名>

.$TC_INSTALL_DIR/bin/dso-env.sh-q

exportJAVA_OPTS="

$JAVA_OPTS$TC_JAVA_OPTS"

.startup.sh

setTC_INSTALL_DIR=<

setTC_CONFIG_PATH=<

call%TC_INSTALL_DIR%\bin\dso-env.bat-q

setJAVA_OPTS=%JAVA_OPTS%%TC_JAVA_OPTS%

startup.bat

启动集群

在Terracotta服务器上的Terracotta安装目录执行如下命令:

bin/start-tc-server.sh&

bin\start-tc-server.bat

在每一台Web应用服务器上的Tomcat安装目录的bin子目录下执行:

./startupTC.sh

startupTC.bat

等Tomcat启动以后,查看Tomcat日志文件,确认Terrocotta已经启动。

比如在Mac环境中,使用Terracotta3.0.1,看到的日志将包括如下内容:

2009-07-1710:

57:

39,425INFO-Terracotta3.0.1,asof20090514-130552(Revision12704bycruise@su10mo5from3.0)

39,828INFO-Configurationloadedfromthefileat'

/Users/lma/tc-config.xml'

.

39,975INFO-Logfile:

'

/Users/lma/apps/tomcat-5.5.27/bin/logs/client-logs/terracotta-client.log'

42,312INFO-Connectionsuccessfullyestablishedtoserverat192.168.0.102:

9510

如果能看到上述信息,说明Terracotta和Tomcat都正常启动,并且已经与Terracotta服务器成功建立了连接。

验证Session集群

集群启动后,我们可以利用Tomcat内置的Web应用examples来验证集群是否成功配置好。

比如有两台Tomcat服务器分别为http:

//192.168.0.101:

8080和http:

//192.168.0.102:

8080。

首先启动dev-concole.sh(Unix)或dev-console.bat(Windows),连接到Terracotta服务器上。

您可以看到所有Tomcat节点都显示在ConnectedClients中。

另外在ObjectBrowser中可以看到一个共享数据:

tc:

session_localhost/examples

说明所有session已经被共享到Terracotta服务器上了。

下面把浏览器指向:

http:

//localhost:

8088/examples/jsp/cal/login.html

输入姓名和EMail。

点击Submit进入下一级页面。

这时您可能会看到服务器抛出com.tc.exception.TCNonPortableObjectError异常。

仔细查看异常信息会发现原来该例子程序所需的一些类没有包含在tc-config.xml的instrumented-classes配置中。

因此需要打开tc-config.xml配置文件,把如下配置添加到<

application>

dso>

中:

instrumented-classes>

include>

class-expression>

cal.*<

/class-expression>

/include>

/instrumented-classes>

重新启动Tomcat。

再打开前面的页面。

您可能还会遇见TCNonPortableObjectError,不过这次的错误是有关bootjar的:

com.tc.exception.TCNonPortableObjectError:

*******************************************************************************

Attempttoshareaninstanceofanon-portableclassreferencedbyaportableclass.ThisunshareableclassmustbeintheDSObootjar.ItalsohassuperclasseswhichmustbeintheDSObootjar.Pleaseaddalloftheseclassestothebootjarconfigurationandre-createtheDSObootjar.

只要认真阅读错误信息,按照提示的方法配置tc-config.xml文件,然后执行下面的命令重新生成bootjar文件,再重新启动Tomcat就可以了:

$TERRACOTTA_HOME/bin/make-boot-jar.sh-f$TOMCAT_HOME/tc-config.xml

处理完上述问题后,例子程序中会显示一个日历管理系统。

您可以在里面配置一天的工作日程。

在第一台Tomcat服务器上配置好一天的日程,然后到第二台服务器上,打开相同的页面,您会看到前面输入的日程已经显示出来了。

您还可以试着在第二台服务器上对日程进行修改,再到第一台上面刷新页面,前面的修改也会立即显示出来。

这说明两台Tomcat服务器的session信息已经完全同步了。

错误处理

1.如果启动失败,有可能是JAVA_OPTS没有配置好。

可以尝试在startupTC文件中,在setJAVA_OPTS后面打印出JAVA_OPTS的内容。

应该看到类似下面的内容:

-Xmx512m-Xms512M-Xbootclasspath/p:

/Users/lma/terracotta/terracotta-3.0.1/lib/dso-boot/dso-boot-hotspot_osx_150_19.jar-Dtc.install-root=/Users/lma/terracotta/terracotta-3.0.1-Dtc.config=/Users/lma/tc-config.xml

2.如果遇见TCNonPortableObjectException异常,说明在Session中共享的类没有包含在tc-config.xml的instrumented-classes配置中。

一般在异常新吸力面Terracotta会包含需要添加到配置文件中的信息,比如:

num.NumberGuessBean<

只要按照提示把配置信息放到tc-config.xml文件中,然会从新启动Tomcat即可。

附件-tc-config.xml

tc-configxmlns:

tc="

//www.terracotta.org/config"

xmlns:

xsi="

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

//www.terracotta.org/schema/terracotta-4.xsd"

servers>

--FormoreinformationonworkingwiththeTerracottaconfigurationfile,includinghowtoadd

moreservers,seehttp:

//www.terracotta.org/web/display/docs/About+Terracotta+Configuration+Files.

Editthefollowingserverelementsothatitshostattributecontainsthevaluematchingthe

hostnamefortheTerracottaserver.-->

localhost"

update-check>

enabled>

true<

/enabled>

/update-check>

/servers>

--CheckthattheTIMshowninthe<

module>

element'

snameattributematchestheTomcatversionyou

areusing.TheTIMlistedhere,"

tim-tomcat-5.5"

isforTomcat5.5.Forexample,ifyouareusing

Tomcat6.0,editthenameto"

tim-tomcat-6.0"

.-->

clients>

modules>

modulename="

version="

1.1.0"

/>

/modules>

/clients>

--Using<

elements,enterthecontextrootofthewebapplicationbeingclustered.

Ifyouareclusteringmorethanonewebapplication,useone<

elementperapplication.

Twoexample<

elementsareshownbelow.Editorremovetheseelementsasneeded.

Tosetthevalueofthe<

elementtothedefaultweb-applicationcontext,usethe

specialvalue"

ROOT"

(withoutquotationmarks).-->

examples<

/dso>

/application>

/tc:

tc-config>

本文来自CSDN博客,转载请标明出处:

另一篇文章,

Terracotta是一款由美国Terracotta公司开发的著名开源Java集群平台。

它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层,以其特有的增量检测、智能定向传送、分布式协作、服务器镜像、分片等技术,允许用户在不改变现有系统代码的情况下实现单机Java应用向集群话应用的无缝迁移。

使得用户可以专注于商业逻辑的开发,由Terracotta负责实现高性能、高可用性、高稳定性的企业级Java集群.Terracotta公司在2009年收购了著名的Java开源缓存项目Ehcache以及Java任务调度项目Quartz。

经过对该项目的深度整合,Terracotta推出了易用性更高的分布式缓存、分布式任务调度以及分布式WebSession等快捷解决方案.以上引自老马的文章,具体可参看作者文章了解

配置环境:

我的配置环境是:

winxp,jdk1.5—17,spring2.5,hibernate3.3,tomcat5.5,terracotta版本是3.2.1_1,目前最新版本是3.2.1_2,可在http:

//www.terracotta.org/dl/oss-download-catalog下载。

实战:

首先需要说明的是terracotta分为expressmode(快捷模式)和客户化模式,expressmode能够让大家快速上手,不需要复杂的配置就可运行起来,而客户化模式则有很多高级功能,而且需要配置相应的文件,初学可以先运行expressmode作为学习。

首先以expressmode模式为例说明

1.首先下载terracotta3.2.1_1。

jar,前提是机器已经安装jdk及配置好了java_home,利用java-jarterracotta3.2.1_1。

jar命令安装terracotta,安装时最好保持jdk及terracotta安装目录名称都没有空格。

2.首先集成session复制,将terracotta安装目录下的sessions文件夹下的terracotta-session-1.0.1.jar拷贝到tomcat-5.5\server\lib文件夹下,然后

将context.xml文件(此文件可参见安装目录下的sessions\conf-samples的例子文件)拷贝到我们自己项目的META-INF文件夹下,具体内容根据使用的不同中间件进行不同配置,一下是使用tomcat5.5的配置,其他的也可看光放文档说明http:

//www.terracotta.org/documentation/ga/product-documentation

例如:

Context>

ValveclassName="

org.terracotta.session.TerracottaTomcat55xSessionValve"

tcConfigUrl="

localhost:

9510"

/>

/Context>

--tomcat5.5.x-->

将我们的web工程发布到webapps下,启动tomcat5.5/bin/下的startup.bat即可,然后到TerracottaConsole控制台查看objectbrower下是否出现tc:

session。

也可运行terracotta自带的例子,位于安装目录下的sessions\samples\下,验证时客气起双tomcat分配不同的端口号,打开两个浏览器窗口进行验证。

客户化模式的session复制可参见老马博客文章。

2.集成hibernate二级缓存

集成的时候需要注意将将安装后的terracotta文件夹下的ehcache-core-2.0.1.jar、ehcache-terracotta-2.0.1.jar、slf4j-api-1.5.8.jar、slf4j-jdk14-1.5.8.jar等文件拷贝到项目的lib文件夹下,配置hibernate属性

propkey="

hibernate.cache.use_query_cache"

/prop>

hibernate.cache.use_second_level_cache"

hibernate.cache.provider_class"

org.hibernate.cache.EhCacheProvider<

加粗部分根据使用的hibernate不同版本配置,在hibernate3.3中就需要配置为

property

name

=

"

hibernate.cache.region.factory_class"

net.sf.ehcache.hibernate.EhCacheRegionFactory<

/property>

ForHibernate3.2则是上面加粗部分配置。

ehcache.xml文件的配置为大致如下:

defaultCache

maxElementsInMemory="

10"

eternal="

false"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1