单个服务器上的 session 集群 Tomcat + terracotta

标签 session tomcat terracotta

我想在单个服务器上使用 terracotta 和 2 个 tomcat 进行 session 集群。 我遵循以下指示:

http://artur.ejsmont.org/blog/content/how-to-setup-terracotta-session-clustering-and-replication-for-apache-tomcat-6

这是我的 tc-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<tc:tc-config xmlns:tc="http://www.terracotta.org/config"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.terracotta.org/schema/terracotta-4.xsd">
 <servers>
   <server name="nodea" host="localhost">
     <data>/home/meruvian/mydatafolder</data>
     <logs>/home/meruvian/mylogsfolder</logs>
     <l2-group-port>9530</l2-group-port>
   </server>
   <server name="nodeb" host="localhost">
     <data>/home/meruvian/mydatafolder</data>
     <logs>/home/meruvian/mylogsfolder</logs>
     <l2-group-port>9530</l2-group-port>
   </server>
 </servers>
 <clients>
   <logs>/var/log/myclientlogsfolder</logs>
       <modules>
       <module name="tim-tomcat-6.0" version="2.2.0"/>
   </modules>
 </clients>
 <application>
   <dso>
     <instrumented-classes>
       <include>
         <class-expression>*..*</class-expression>
       </include>
       <exclude>org.apache.coyote..*</exclude>
       <exclude>org.apache.catalina..*</exclude>
       <exclude>org.apache.jasper..*</exclude>
       <exclude>org.apache.tomcat..*</exclude>
     </instrumented-classes>
     <web-applications>
       <web-application>sessionapp</web-application>
     </web-applications>
    </dso>
 </application>
</tc:tc-config>

然后当我尝试执行命令时:

/start-tc-server.sh -f ~/Terracotta/terracotta-3.6.2/tc-config.xml 

但是我收到如下错误信息:

致命的 Terracotta 启动异常:

*******************************************************************************
You have not specified a name for your Terracotta server, and there are 2 servers defined in the Terracotta configuration file. The script can not automatically choose between the following server names: nodea, nodeb. Pass the desired server name to the script using the -n flag.
*******************************************************************************

什么意思

<web-application>sessionapp</web-application>

这是我的应用程序的上下文路径吗?

任何人都可以帮我解决这个问题,用 tomcat + terracotta 集群 session ?

谢谢

最佳答案

我绝不是 Terracotta 方面的权威,但据我所知, 这里有两个问题:

  1. 您指定了 2 个在本地主机上运行的服务器,但没有指定端口。两者都会尝试占用端口 9510(dso 端口),这会导致问题。您需要指定不同的 dso 端口。
  2. 假设您确实修复了端口配置,您的两个服务器都在本地主机上运行,​​因此 terracotta 需要知道您尝试启动的服务器。 使用此命令启动 nodea:

    /start-tc-server.sh -f ~/Terracotta/terracotta-3.6.2/tc-config.xml -n nodea
    

nodeb 也类似。 看看是否有帮助。

关于单个服务器上的 session 集群 Tomcat + terracotta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11304455/

相关文章:

java - Mockito 说参数不相同,但它们是?

Tomcat 弹性与 Tomcat 和 Microsoft Azure

tomcat - systemd:延迟服务的返回,直到启动完成

java - 集中式二级缓存

hibernate - 为什么 EhCacheProvider 被弃用?

Java 后端 : REST, 通过 Google 登录进行身份验证,现在怎么办?

java - JAVA中如何更改 session ID而不使当前 session 失效

php - 如何在不清除网站其他部分的情况下清除 session

java - 在服务器上使用 SSL 配置 Tomcat

jvm - 如何在 Windows 上为我的 JDK 分配 8 GB(而不是 1 GB)RAM