我正在尝试设置Apache Web服务器,以便在两台Tomcat服务器上平衡客户端的请求。对于Web服务,我使用Axis2。它部署在两个Tomcats上。当我调用Web服务时,始终只有一个服务器应答,尽管已建立群集。我使用了this教程,Axis2 1.6.1,Tomcat 7,Apache Web Server 2.2,我在Windows 32位系统上运行它。 如何平衡Tomcats上的客户端请求? 它可能与Web服务器的代理配置有关,但它只是一个想法。 如果您需要截图,请告诉我。抱歉我的德国口音:)
答案 0 :(得分:1)
通常在负载均衡(群集)的情况下,一个服务器将首先应答 - 哪个服务器将由其配置中的负载均衡器(代理)决定。负载平衡器(代理)通常查询所有群集服务器,直到找到一个不太忙的服务器。为了测试集群环境,您必须模拟(或创建)高负载,或者您可以“减慢”(或完全停止)其中一个服务器。
答案 1 :(得分:1)
好的,现在有效。这是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
现在我的群集工作正常。有时你必须回过头来了解什么是错误的。