【问题标题】:Double Tomcat behind mod_jk load balancermod_jk 负载均衡器后面的双 Tomcat
【发布时间】:2016-08-12 11:51:23
【问题描述】:

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

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

      <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 是一个坏值吗?我应该使用 auto 但在其他地方进行更改吗?有没有人在这方面有更多经验可以帮助我?

【问题讨论】:

    标签: apache tomcat mod-jk


    【解决方案1】:

    我们通过将集群配置中接收器标记中的地址参数从“自动”更改为服务器的实际 IP 地址来解决此问题。我一直无法弄清楚为什么这不起作用,并且一旦我们接到电话,我就不想再花时间了。

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

    【讨论】:

      猜你喜欢
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      相关资源
      最近更新 更多