如何以编程方式确定运行webapp的哪个(负载平衡)tomcat服务器

时间:2011-05-11 09:16:22

标签: java tomcat

我有一个在两个负载均衡的tomcat服务器上运行的webapp。应用程序确定运行哪个服务器的最佳方法是什么?

虽然我可以从sessionid告诉它正在运行哪个服务器(如.jvm1和.jvm2附加),但是如何在后台任务中获取类似信息(通过Spring的@Scheduled注释进行调度)?

2 个答案:

答案 0 :(得分:1)

如果您在不同的计算机上运行实例,则只需获取hostName InetAddress.getLocalHost().getCanonicalHostName()

即可

答案 1 :(得分:1)

它可能有点过分,如果有另一种方式可能会更好,但您可以查询tomcat Engine MBean并获取它的jvmRoute属性。 MBean 通常称为Catalina:type=EngineCatalina:type=Engine,service=something(请参阅here for more details)。