展示不使用Terracotta DSO如何集群Web Sessions。
1、要求
1)jdk1.6或者更高版本
2)Terracotta 3.7或者更高版本
3)所有被集群的对象需要实现序列化,如果不想实现序列化,必须使用Terracotta DSO定制Web Sessions的安装
2、安装Terracotta Sessions jar
1)为保证兼容性,请使用已安装的Terracotta的jar文件
2)为了使应用的web Sessions在集群中共享,添加下列jar文件到应用服务器的的lib目录中
${TERRACOTTA_HOME}/sessions/terracotta-session-.jar
${TERRACOTTA_HOME}是指Terracotta的安装目录,<version>是指当前使用的terracotta session的版本,我这里就是D:\terracotta\terracotta-3.7.2\sessions\terracotta-session-1.3.1.jar。
${TERRACOTTA_HOME}/common/terracotta-toolkit–runtime-ee-.jar
The Terracotta Toolkit JAR包含了Terracotta客户端类库,<API-version> 就是指Terracotta Toolkit API version. <version>就是当前使用的Terracotta Toolkit JAR版本,我这里就是:D:\terracotta\terracotta-3.7.2\common\terracotta-toolkit-1.6-runtime-5.2.0.jar
3)上述session和toolkit的jar文件在各种应用服务器中的存放路径
Application ServerSuggested Location for Terracotta Sessions JAR File
JBoss AS (earlier than 6.0)< jboss install dir>/lib
JBoss AS 6.0< jboss install dir>/common/lib (REQUIRED)
JBoss AS 7.0 or 7.1< jboss install dir>/WEB-INF/lib
JettyWEB-INF/lib
Tomcat 5.0 and 5.5$CATALINA_HOME/server/lib
Tomcat 6.0 and 7.0$CATALINA_HOME/lib
WebLogicWEB-INF/lib
3、配置web-session集群
1)Terracotta servers和Terracotta clients通过 Terracotta配置文件运行在集群中的应用服务器上,默认的配置文件是tc-config.xml,服务器启动的时候不指定配置文件就默认使用tc-config.xml。
2)为了把Terracotta集群添加到我们的应用中,需要通过web.xml或者context.xml文件指定Terracotta clients如何获取配置。
3)Jetty, WebLogic, and WebSphere需要添加以下配置到web.xml文件中
terracottaorg.terracotta.session.{container-specific-class}tcConfigUrl <init-param> of type tcConfigUrl has a <param-value> element containing the URL or filepath (for example, /lib/tc-config.xml) to tc-config.xml. If the Terracotta configuration source changes at a later time, it must be updated in configuration. localhost:9510terracotta/*ERRORINCLUDEFORWARDREQUEST
<filter-class>中的{container-specific-class}根据实际的应用服务器类型选择:
ContainerValue of <filter-class>
Jetty 6.1org.terracotta.session.TerracottaJetty61xSessionFilter
Jetty 7.4.1org.terracotta.session.TerracottaJetty74xSessionFilter
WebLogic 9org.terracotta.session.TerracottaWeblogic9xSessionFilter
WebLogic 10org.terracotta.session.TerracottaWeblogic10xSessionFilter
WebSphere 6.1org.terracotta.session.TerracottaWebsphere61xSessionFilter
WebSphere 7.0org.terracotta.session.TerracottaWebsphere70xSessionFilter
4)Tomcat and JBoss AS 6.0 or Earlier
使用war包发布的应用,香港虚拟主机,如果是tomcat,确保context.xml文件在/META-INF目录下,如果是JBoss,确保context.xml文件在/WEB-INF目录下。
context.xml文件内容如下:
{container-specific-class}根据实际的应用服务器类型选择:
ContainerValue of className
JBoss Application Server 4.0org.terracotta.session.TerracottaJboss40xSessionValve
JBoss Application Server 4.2org.terracotta.session.TerracottaJboss42xSessionValve
JBoss Application Server 5.1org.terracotta.session.TerracottaJboss51xSessionValve
JBoss Application Server 6.0org.terracotta.session.TerracottaJboss60xSessionValve
Tomcat 5.0org.terracotta.session.TerracottaTomcat50xSessionValve
Tomcat 5.5org.terracotta.session.TerracottaTomcat55xSessionValve
Tomcat 6.0org.terracotta.session.TerracottaTomcat60xSessionValve
Tomcat 7.0org.terracotta.session.TerracottaTomcat70xSessionValve
例如在tomcat6.0中,context.xml内容如下:
确保Terracotta Value是context.xml文件中的第一个<Value>元素。
快乐不是因为得到的多而是因为计较的少!