0

我在 Centos 上运行 tomcat7

我必须从多个 URL 输入同一个实例:一个是通过负载均衡器,第二个是直接连接到特定服务器以进行监控:lb.mydomain.com 和 web1.mydomain.com

问题是我有对象将所有连接作为单例(用作缓存对象)。从两个域进入 tomcat 的那一刻,我看到两个缓存对象,但只有一个 tomcat 进程(使用 grep)

我也有问题,因为我使用 JNI 加载只能加载一次的库。

如何?是否可以仅将 tomcat7 阻止到一个进程(或实例)?

4

1 回答 1

1

如果我理解正确,您的 webapp 部署了两次(每个虚拟主机一次),并且由于每个 webapp 都有自己的类加载器,因此您最终会得到重复的单例。

要尝试的一件事是将包含这些类的 jar 移到下面,$CATALINA_HOME/lib而不是将其直接放在 webapp 的WEB-INF/lib目录下。这样,Tomcat 的通用类加载器将只加载一次类。

于 2013-09-15T12:50:41.160 回答