【发布时间】:2012-11-23 19:57:47
【问题描述】:
在负载均衡器下运行多个 tomcat 的集群环境中,我们遇到了一个问题,我们认为这可能是速度引擎,当环境从简单节点转移到集群时需要某种配置。
这就是我遇到的方式,如果我按照以下步骤进行操作,就可以重现。步骤是;例如,在集群的开发环境中,开发人员有两个不同的(虚拟)服务器,每个服务器 Tomcat 与另一个发送序列化会话进行通信,另一个在它的末端反序列化。这样,如果一个服务器关闭(或未响应),两个服务器都具有相同的会话,另一台服务器将处理该请求。用户会话持续和任何类型的服务器故障都不会导致用户烦恼。
假设在浏览器中浏览应用程序时,您正在观察每个服务器的“catalina.out”日志。将有一台服务器将处理您的所有请求,而另一台服务器只是同步会话(处于待机状态)。您杀死了服务器的 tomcat,所有请求都在其中提供服务,现在备用服务器已准备好为您提供服务。您浏览到一个页面,您可以在其中搜索记录,该页面最初显示为空。有一次,您点击搜索,您会看到 3 条记录,但每一行列第一列都有一些奇怪的东西:
Names | Last Logged in Time
_________________________________________________________________________________
#dotPaddingWithoutTitle(Amir Ali, 60) | 10/11/2012 6:00 PM
#dotPaddingWithoutTitle(Saif Uddin, 60) | 10/11/2012 6:00 PM
#dotPaddingWithoutTitle(Reemsha Ayaz, 60) | 10/11/2012 6:00 PM
#dotPaddingWithoutTitle 是一个速度宏;似乎无法在这种情况下呈现它,但我不明白为什么整个视图(页眉、页脚、导航、工具栏等)能够呈现但不是这个。
如果您对此有任何想法,请提供帮助。谢谢。
【问题讨论】:
-
您需要提供更多详细信息。发布速度宏肯定会有所帮助。如果这些 Velocity 宏包含服务器端对象,说明什么也有用。
-
@mindas 此宏中没有服务器端对象,它所做的只是将标题限制为 60 个字符,并在标题的每一侧添加 1 个填充
-
我实际上不知道,但发布 all 速度配置可能会有所帮助。特别是在哪里以及如何读取 velocimacros。
-
@sinuhepop 你能告诉我当你所有的宏都驻留在 /WEB-INF/classes/vm/sn-ps/macroutils.vm 中时如何使用 spring 在 velocity.properties 中配置 velocimacros
-
我发现 Spring 的 VelocityConfigurer 不完整,所以我一直使用自己的 bean factory。但我认为你必须使用它的 velocityProperties 字段,如 velocity.properties 文件。
标签: spring jakarta-ee tomcat velocity session-replication