mod_jk负载均衡器

时间:2016-08-12 11:51:24

标签: apache tomcat mod-jk

我正在同一台服务器上设置两个Tomcat实例,前面有一个Apache mod_jk负载均衡器。我一直在使用指南和Apache Tomcat文档,并坚持建议的基本设置。当我尝试启动任何Tomcat实例时,我从尝试启动SimpleTcpCluster时获得BindException。错误消息是“无法分配请求的地址”。

我搜索了这个问题的解决方案并遇到了两个建议,第一个是确保将Java配置为更喜欢IPv4地址。尝试过 - 没有变化。第二个建议替换群集配置中Receiver组件上的address参数的auto值(参见下面的配置)。

      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
    <Manager className="org.apache.catalina.ha.session.DeltaManager"
      expireSessionsOnShutdown="false"
      notifyListenersOnReplication="true"/>
    <Channel className="org.apache.catalina.tribes.group.GroupChannel">
      <Membership className="org.apache.catalina.tribes.membership.McastService"
        address="228.0.0.4"
        port="45564" frequency="500"
        dropTime="3000"/>
      <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
        <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
      </Sender>
      <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
        address="localhost" port="4000" autoBind="100"
        selectorTimeout="5000" maxThreads="6"/>
      <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
      <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
    </Channel>
    <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
    <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
    <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
    <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
  </Cluster>

我尝试将“auto”更改为“localhost”,这导致Tomcat启动时出现不同的错误消息,说“地址已在使用:8009”。

此时我真的不知道该往哪里看。 localhost值不好吗?我应该使用自动,但在其他地方进行更改?是否有人在这方面有更多经验可以帮助我?

1 个答案:

答案 0 :(得分:0)

我们通过更改群集配置中的Receiver标记中的地址参数来解决此问题。&#34; auto&#34;到服务器的实际IP地址。我无法弄清楚为什么这不起作用,并且在接到电话后我们不想花更多的时间。

   <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
        address="123.123.x.x" port="4000" autoBind="100"
        selectorTimeout="5000" maxThreads="6"/>