群集不起作用

时间:2011-04-15 06:01:47

标签: tomcat apache2 load-balancing cluster-computing

我使用前端的apache和mod_jk作为连接器为两个tomcat配置群集。我尝试了一个测试应用程序来检查配置,它工作正常。正在成功复制会话并成功检测到故障转移。但是当我为我的实际应用尝试这个时,它不起作用。我在httpd.conf中进行了相应的修改并且非常谨慎。日志中没有异常,没有错误。我无法追踪问题。最初我得到NotSerializableException特定类,我让它们可序列化。现在没有异常,但是如果托管tomcat被关闭,即使集群的其他tomcat成员处于活动状态,我仍然无法加载应用程序。你能帮帮我吗我可以理解,当您不确定问题时,制作解决方案非常困难。

1 个答案:

答案 0 :(得分:4)

所以你有2个服务,配置方式相同,只是一个正确地进行故障检修而另一个没有?

当你看到看起来不可能的东西时,有一般的经验法则。而这个规则是你没有看到你认为你所看到的。通常是因为被戏称为PEBKAC(键盘和椅子之间存在的问题)。真正令人沮丧的是,无论多么明显,你都可以盯着它看100次而且不会很明显,因为你看到了你所知道的东西而不是那里的东西。

根据我的经验,有两种很好的方法可以解决这类问题。

  1. 把它带给别人,并让他们找到你正在做的不同的事情。鉴于他们看到的是什么,而不是你“知道”的东西,他们经常会看到你不能做到的。 (在一段时间内,你可能有一天能够回报。)
  2. 从工作配置和非工作配置开始,然后开始“平分”它们之间的路径,直到获得最小差异,告诉工作和非工作之间的区别。减少这种差异,你要么知道要修复什么,要么有一个测试用例给别人。
  3. 你可能需要遵循第二种方法。你可能不想 - 我从来没有 - 但它通常不像你想象的那么痛苦。首先,在测试系统上复制完整的应用程序,并证明您具有相同的故障。 (如果不这样做,那么你就开始仔细查看生产和测试之间的差异。特别是看看操作系统版本,库版本等等。)

    假设您有一个测试系统,请保存该配置。然后开始删除您认为与配置问题无关的实际应用程序的大块,定期测试您是否在正确的路径上。 (并且每次都保存。)一旦你有一个最小的应用程序,开始尝试将其转向工作测试应用程序。在某个地方,你会发现一个有所作为的变化。它可能在任何地方。一旦找到它,您通常就会知道如何修复生产系统。或者如果你不这样做,你会非常清楚地知道你的问题。

    有时你会发现一个奇怪的错误。如果是这样,那么您应该尽可能地开始尝试简化所有内容,直到您有一个很好的错误报告发送。