我想在单个服务器上使用 terracotta 和 2 个 tomcat 进行 session 集群。 我遵循以下指示:
这是我的 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 方面的权威,但据我所知, 这里有两个问题:
- 您指定了 2 个在本地主机上运行的服务器,但没有指定端口。两者都会尝试占用端口 9510(dso 端口),这会导致问题。您需要指定不同的 dso 端口。
假设您确实修复了端口配置,您的两个服务器都在本地主机上运行,因此 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/