设为首页 收藏本站
查看: 747|回复: 0

[经验分享] Web Sessions Installation

[复制链接]

尚未签到

发表于 2017-2-28 10:01:40 | 显示全部楼层 |阅读模式
    展示不使用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-<version>.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-<API-version>-runtime-ee-<version>.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


Jetty
WEB-INF/lib


Tomcat 5.0 and 5.5
$CATALINA_HOME/server/lib


Tomcat 6.0 and 7.0
$CATALINA_HOME/lib


WebLogic
WEB-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文件中



<filter>
<filter-name>terracotta</filter-name>
<!-- The filter class is specific to the application server. -->
<filter-class>org.terracotta.session.{container-specific-class}</filter-class>
<init-param>
<param-name>tcConfigUrl</param-name>  
<!-- <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. -->
<param-value>localhost:9510</param-value>
</init-param>
</filter>
<filter-mapping>
<!-- Must match filter name from above. -->
<filter-name>terracotta</filter-name>
<url-pattern>/*</url-pattern>
<!-- Enable all available dispatchers. -->
<dispatcher>ERROR</dispatcher> <dispatcher>INCLUDE</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
  <filter-class>中的{container-specific-class}根据实际的应用服务器类型选择:

ContainerValue of <filter-class>

Jetty 6.1
org.terracotta.session.TerracottaJetty61xSessionFilter


Jetty 7.4.1
org.terracotta.session.TerracottaJetty74xSessionFilter


WebLogic 9
org.terracotta.session.TerracottaWeblogic9xSessionFilter


WebLogic 10
org.terracotta.session.TerracottaWeblogic10xSessionFilter


WebSphere 6.1
org.terracotta.session.TerracottaWebsphere61xSessionFilter


WebSphere 7.0
org.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文件内容如下:



<Valve className="org.terracotta.session.{container-specific-class}" tcConfigUrl="localhost:9510"/>
   {container-specific-class}根据实际的应用服务器类型选择:

ContainerValue of className

JBoss Application Server 4.0
org.terracotta.session.TerracottaJboss40xSessionValve


JBoss Application Server 4.2
org.terracotta.session.TerracottaJboss42xSessionValve


JBoss Application Server 5.1
org.terracotta.session.TerracottaJboss51xSessionValve


JBoss Application Server 6.0
org.terracotta.session.TerracottaJboss60xSessionValve


Tomcat 5.0
org.terracotta.session.TerracottaTomcat50xSessionValve


Tomcat 5.5
org.terracotta.session.TerracottaTomcat55xSessionValve


Tomcat 6.0
org.terracotta.session.TerracottaTomcat60xSessionValve


Tomcat 7.0
org.terracotta.session.TerracottaTomcat70xSessionValve
          例如在tomcat6.0中,context.xml内容如下:



<Context>
  <Valve className="org.terracotta.session.TerracottaTomcat60xSessionValve" tcConfigUrl="localhost:9510"/>
</Context>
          确保Terracotta Value是context.xml文件中的第一个<Value>元素。
          如果在tomcat中使用了authenticator,在Terracotta集群运行的时候有可能会遇到UnsupportedOperationException,在tomcat5.5以上可以禁用changeSessionIdOnAuthentication来防止这种错误:



<Valve changeSessionIdOnAuthentication="false" className="org.apache.catalina.authenticator.BasicAuthenticator"/>
      5)JBoss7.0 or 7.1  
        添加以下内容到WEB-INF/jboss-web.xml中



<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
...  
<valve>
<class-name>org.terracotta.session.TerracottaJboss7xSessionValve</class-name>      
<param>
<param-name>tcConfigUrl</param-name>
        <param-value>localhost:9510</param-value>
</param>
</valve>
...
</jboss-web>
  
    4、启动集群
      1)启动 Terracotta server:
        UNIX/Linux



${TERRACOTTA_HOME}/bin/start-tc-server.sh &
        Microsoft Windows



${TERRACOTTA_HOME}\bin\start-tc-server.bat
    2)启动应用服务器
      3)启动Terracotta 控制台
  UNIX/Linux



${TERRACOTTA_HOME}/bin/dev-console.sh &
  Microsoft Windows



${TERRACOTTA_HOME}\bin\dev-console.bat
  4)启动控制台后,可以看到集群中Terracotta Server和客户端
   5、Terracotta配置
      这里配置展示如何在分开的机器上运行服务器和客户端,增加容灾(高可用性),扩展集群和添加高可用性可以按照下面的步骤: 


  • Moving the Terracotta server to its own machine
  • Creating a cluster with multiple Terracotta servers
  • Creating multiple application nodes
      1)关闭Terracotta Cluster
      2)创建Terracotta配置文件tc-config.xml:



<tc:tc-config>
<servers>
<!-- Sets where the Terracotta server can be found. Replace the value of
host with the server's IP address. -->
<server host="server.1.ip.address" name="Server1">
  <data>%(user.home)/terracotta/server-data</data>
  <logs>%(user.home)/terracotta/server-logs</logs>
</server>
<!-- If using a standby Terracotta server,
also referred to as an ACTIVE-PASSIVE configuration,
add the second server here. -->
<server host="server.2.ip.address" name="Server2">
   <data>%(user.home)/terracotta/server-data</data>
   <logs>%(user.home)/terracotta/server-logs</logs>
</server>
<!-- If using more than one server, add an <ha> section. -->
<ha>
   <mode>networked-active-passive</mode>
   <networked-active-passive>
    <election-time>5</election-time>
  </networked-active-passive>
</ha>
</servers>
<!-- Sets where the generated client logs are saved on clients. -->
<clients>
<logs>%(user.home)/terracotta/client-logs</logs>
</clients>
</tc:tc-config>
   3)在tc-config.xml中配置的每一台服务器机器上安装terracotta3.7.2
      4)把tc-config.xml文件复制到每一台服务器中的terracotta Server可以访问的位置
      5)在每一台服务器中按照上面步骤(2、安装Terracotta Sessions jar)安装Terracotta Sessions jar
      6)在每一台应用服务器中配置web.xml或者context.xml
        如果使用的是web.xml,按如下配置:



<param-value>server.1.ip.address:9510,server.2.ip.address:9510</param-value>
        如果使用的是context.xml,按如下配置:



tcConfigUrl="server.1.ip.address:9510,server.2.ip.address:9510"
        tc-config.xml中配置了多少台服务器,web.xml或者context.xml就要配置多少。
    7)启动Terracotta Server
      UNIX/Linux



${TERRACOTTA_HOME}/bin/start-tc-server.sh -f <path/to/tc-config.xml> -n Server1 &
      Microsoft Windows



${TERRACOTTA_HOME}\bin\start-tc-server.bat -f <path\to\tc-config.xml> -n Server1
      ${TERRACOTTA_HOME}是指terracotta的安装目录
      <path/to/tc-config.xml>是指tc-config.xml文件的完整存放路径
      Server1是指在tc-config.xml文件中配置的ServerName
      在每一台服务器上启动各自的Terracotta Server,注意启动的时候 -n 指定各自的ServerName,第二台和往后启动的Terracotta Server处于备用状态。
      8)在每一台服务器上启动各自的应用服务器
      9)启动Terracotta控制台查看集群

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348269-1-1.html 上篇帖子: 手机网游开发指南-付费接口-收到付费通知后的数据传递 下篇帖子: 关于使用"/"来 dispatcherServlet 的url-pattern带来的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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