【问题标题】:Howto setup Apache Web Server for clustering a Web Service on two Tomcats如何设置 Apache Web 服务器以在两个 Tomcat 上集群 Web 服务
【发布时间】:2012-07-22 14:35:28
【问题描述】:

我正在尝试设置一个 Apache Web 服务器,以便在两个 Tomcat 服务器上平衡客户端的请求。对于 Web 服务,我使用 Axis2。它部署在两个 Tomcat 上。当我调用 Web 服务时,总是只有一个服务器应答,尽管集群已经建立。我使用了this 教程、Axis2 1.6.1、Tomcat 7、Apache Web Server 2.2,并且我在 Windows 32 位系统上运行它。 如何平衡两个 Tomcat 上的客户端请求? 它可能与 Web 服务器的代理配置有关,但这只是一个想法。 如果您需要截图或其他,请告诉我。对不起我的德国口音:)

【问题讨论】:

    标签: web-services apache axis2 tomcat7


    【解决方案1】:

    通常使用负载平衡(集群),一台服务器将首先响应 - 哪个服务器将由其配置中的负载平衡器(代理)决定。负载平衡器(代理)通常会查询所有集群服务器,直到找到一个不太忙的服务器。为了测试集群环境,您必须模拟(或创建)高负载,或者您可以“减慢”(或完全停止)其中一台服务器。

    【讨论】:

    • 好的,我试图完全停止一台服务器,但现在第二台服务器仍然没有响应请求。当我加载 Web Service 的 wsdl 时,两台服务器依次应答,可以通过平衡器管理器检查什么。所以我认为我的 Web 服务客户端只是“与”一个 Tomcat 服务器“对话”,甚至没有使用 Web 服务器。现在我不知道哪个配置文件是错误的。我已经设置了 httpd.conf(Web 服务器)、server.xml 文件(Tomcat)和 Web 服务的 axis2.xml 文件,它们都部署在 tomcat 上。有谁知道可能是哪一个问题?
    • 如果您从两台服务器获得 WSDL 响应,我认为两台服务器上的配置都是正确的。为了本地化问题,我将交换两台服务器(名称/IP)并检查行为是否发生变化。 IE。您的原始配置:代理 - > server1,server2 - 将 server1 重命名为 server2,将 server2 重命名为 server1。如果您继续从 server1 获得响应 -> 问题出在代理配置中,如果您从 server2(原始 server1)获得响应 -> 问题出在您的原始 server2(现在是 server1)配置。
    • 感谢您的建议。我交换了名称和 IP,仍然从同一台服务器获得响应。所以问题一定是代理配置。
    【解决方案2】:

    好的,现在可以了。这是axis2.xml文件中的配置问题,我的IP错误。现在我在每个实例上都有以下配置:

        <!-- The host name or IP address of this member -->
        <parameter name="localMemberHost">127.0.0.1</parameter>
    

    Tomcat 实例的 server.xml 文件也很重要。这里每个实例的 Shutdown 端口必须不同:

    实例 1:

            <Server port="8005" shutdown="SHUTDOWN">
    

    实例 2:

            <Server port="8015" shutdown="SHUTDOWN">
    

    连接器端口也必须不同:

    实例 1:

            <!-- Define an AJP 1.3 Connector on port 8009 -->
            <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    

    实例 2:

            <!-- Define an AJP 1.3 Connector on port 8009 -->
            <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
    

    然后我只是在 Apache Webserver 的 httpd.conf 文件中设置这些调整,如下所示:

            BalancerMember ajp://127.0.0.1:8009 min=1 max=1 route=node1 loadfactor=1
            BalancerMember ajp://127.0.0.1:8010 min=1 max=1 route=node2 loadfactor=1
    

    现在我的集群工作正常。有时您必须返回一些步骤才能了解问题所在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-21
      • 2010-11-10
      • 2013-11-27
      • 2012-06-20
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      相关资源
      最近更新 更多