7 Replies Latest reply on Jan 6, 2016 3:09 PM by kostd

    how i can integrate mod_cluster with wildfly such way that load-balancing will be on more than one port?

    kostd

      hi friendz!

       

      on our wf8.2 server the web-app have two http endpoints: on port 8080 to regular http requests; and on port 37304 to  "special" user requests in protected area.

       

      we want use mod_cluster as load-balancer that balances user requests on both ports. For example(see the pic), lets requests on balancer`s port 7801 will be balance between node1 and node2 on port 8080, and requests on balancer`s port 7802 will be balance on port 37304.

       

      In modcluster-subsystem configuration in standalone.xml we can set only one connector for mod-cluster config. And cannot set more than one mod-cluster-config section:

       

      {code:title=jboss-as-mod-cluster_1_2.xsd}

            <xs:element name="mod-cluster-config" type="mod-cluster-configType" minOccurs="0" maxOccurs="1"/>

      {code}

       

      alternatively, we can use mod_cluster + mod_proxy_balancer or mod_cluster + mod_jk so that mod_cluster balances on 8080 and other tech(mod_proxy_balancer or mod_jk) balances on other port 37304.

      But this decision obviously not good: reverse loopback from servers(mgmt info with loadfactor of server) to balancer will manage balancing only for one port, not for both.

       

      Seems that mod_cluster absolutely not supports more than one connector balancing:

       

      {code:title=http://docs.jboss.org/mod_cluster/1.3.0/pdf/Mod_cluster-UserGuide.pdf}

      Like mod_jk and mod_proxy_balancer, mod_cluster requires a connector in your server.xml to

      which to forward web requests. Unlike mod_jk and mod_proxy_balancer, mod_cluster is not

      confined to AJP, but can use HTTP as well. While AJP is generally faster, an HTTP connector

      can optionally be secured via SSL. If multiple possible connectors are defined in your server.xml,

      mod_cluster uses the following algorithm to choose between them:

      1. If an native (APR) AJP connector is available, use it.

      2. If an AJP connector is available, use it.

      3. Otherwise, choose the HTTP connector with the highest max threads.

      {code}

       

      is this true?

       

      what is the best way to solve our problem?

       

      P.S. please excuse my bad English