1 Reply Latest reply on Mar 5, 2002 2:52 PM by Bill Burke

    Infrastructure advice for very dinamic service

    Joao Clemente Newbie

      Hi.
      I would like to hear some advice (specially if someone actually has it implemented) on the machine/software structure for a site whose content is mostly dynamic.
      My thought about the needed hardware is something like this:


      --------------------------------------
      Client Client Client
      | | |
      V V V

      <<<< Firewall with replicated load balancer >>>>>

      set of machines running apache (as apache gives static contents only, no session tracking is needed here)

      | | |
      V V V

      <<<< Firewall with replicated load balancer, maybe with session handling included >>>>

      | | |
      V V V

      set of JBoss app server

      ------------------------------------------

      So, here are my biggest problems :

      Where do I have Tomcat??? With these machines or on a extra layer? Should I place Tomcat (Servlet+JSP handling) together with httpd (Apache) or with application server (JBoss), or in a separated level?
      I mean, how should one balance the needs for static contents (apache) versus web-servers (Jsp,Servlets) versus EJB servers? )

      If the session management in JBoss is handleed in 3.x versions, we still have the problem of session management in JSP/Servlet server. Is this handled correctly with the use of the load balancer with session tracking? Or we really must wait 'till Tomcat/Jetty gets this functionality done?

      Is it stupid to have a single acess point for the several levels, acting as load balancer for a set of machines in that level? That way, the separation between levels would be complete and we could keep config at a minimum (just at the acess points).

      Finally, is there really the need for a hardware load balancer or a typical machine properly configured would do aswell as the hardware solution? As I see it, the session tracking , ssl issues and so on would be being the capabilities of a hardware load balancer... But I can be completly wrong...

      I would like to know some real case figures... How many clients/connections can handle each machine? What is a tipical load proportion between the several components?

      I remember having read sometime ago that a typical config would be a set of apaches connecting to a single app server... I can't understand how is this functional as most of the load is on processing dynamic content and not on serving static pages... Can someone enlighten me on this?

      Thank you
      Joao Clemente

        • 1. Re: Infrastructure advice for very dinamic service
          Bill Burke Master

          > Hi.
          > I would like to hear some advice (specially if
          > someone actually has it implemented) on the
          > machine/software structure for a site whose content
          > is mostly dynamic.
          > My thought about the needed hardware is something
          > like this:
          >
          >
          > --------------------------------------
          > Client Client Client
          > | | |
          > V V V
          >
          > <<<< Firewall with replicated load
          > balancer >>>>>
          >
          > set of machines running apache (as apache gives
          > static contents only, no session tracking is needed
          > here)
          >
          > | | |
          > V V V
          >
          > <<<< Firewall with replicated load
          > balancer, maybe with session handling included
          > >>>>
          >
          > | | |
          > V V V
          >
          > set of JBoss app server
          >
          > ------------------------------------------
          >
          > So, here are my biggest problems :
          >
          > Where do I have Tomcat??? With these machines or on a
          > extra layer? Should I place Tomcat (Servlet+JSP
          > handling) together with httpd (Apache) or with
          > application server (JBoss), or in a separated level?
          >

          Do not have Apache in front of Tomcat. Its just too much overhead. You may want to look at serving up your static content with Tomcat as well.

          FYI, In the immediate future, HttpSession clustering features will be introduced with Jetty first.

          > I mean, how should one balance the needs for static
          > contents (apache) versus web-servers (Jsp,Servlets)
          > versus EJB servers? )
          >

          I'd try serving up everything with Tomcat(or Jetty). May not be much of a performance hit. Please let me know what you find out.

          > If the session management in JBoss is handleed in 3.x
          > versions, we still have the problem of session
          > management in JSP/Servlet server. Is this handled
          > correctly with the use of the load balancer with
          > session tracking? Or we really must wait 'till
          > Tomcat/Jetty gets this functionality done?
          >

          Do you mean replicated HttpSessions? This will only be supported with Jetty in the immediate future. My suggestion is to have Tomcat and your EJB container both served up by JBoss in one JVM. The overhead of network calls between a separate Tomcat and JBoss would be too much overhead.

          > Is it stupid to have a single acess point for the
          > several levels, acting as load balancer for a set of
          > machines in that level? That way, the separation
          > between levels would be complete and we could keep
          > config at a minimum (just at the acess points).
          >
          > Finally, is there really the need for a hardware load
          > balancer or a typical machine properly configured
          > would do aswell as the hardware solution? As I see
          > it, the session tracking , ssl issues and so on would
          > be being the capabilities of a hardware load
          > balancer... But I can be completly wrong...
          >

          I think you can use an Apache plugin called mod_jk. Search on google for:"
          "Apache 1.3.23 + Tomcat 4.0.2 + Load Balancing" and look at the cached copy. This link seems dead. Or try this:

          http://www.google.com/search?q=cache:di0vYLm3Xx4C:www.ubeans.com/tomcat+Apache+1.3.23+%2B+Tomcat&hl=en

          I haven't tried it out yet, but take a look and let me know if the solution is viable. It seems to support load-balancing and "sticky" sessions.

          > I would like to know some real case figures... How
          > many clients/connections can handle each machine?
          > What is a tipical load proportion between the several
          > components?
          >
          You should ask the Tomcat/Jetty guys this question.

          > I remember having read sometime ago that a typical
          > config would be a set of apaches connecting to a
          > single app server... I can't understand how is this
          > functional as most of the load is on processing
          > dynamic content and not on serving static pages...
          > Can someone enlighten me on this?
          >

          Whoever wrote that is crazy. One app server? Well, I guess it depends on your application, but what I've had is a 2:1 ratio between appserver CPUs and DB CPUs.

          Bill