I want to make a cluster to handle some "high" laod. Now; my content is 100% dynamic, and user centric (no 2 users will "ever" ask about the same content). I was thinking before to have Apache web server with mod_jk spraying the load to Tomcat-JBoss servers. I don't think I will need Apache since there is no static content, and all the requests will be forwarded anyway.
So now, my questions are:
1- Is it a good idea to have Apache even if the content is 100% dynamic? (more robust and can handle several com without crashing).
2- NOW assuming I will not use Apache/mod_jk, how is the load goin to be distributed, I think that the jboss
server could forward the request to another server when the load is high, but to which server will my clients point to (In case I don't want to make any kind of clustering at the client level, and the client needs to know only one IP adress).
3- If the answer to question 2 is an IP balancer (IP sprayer), then you would you need to have your application "cluster" aware, the IP sprayer can just do it for you. I have read that mod_jk is doing fail-over, and I know that many (costly
load balancers also detect when a server is down (by healp of some kinda heart beats requests) and takes the request to the next server. They are even session aware and let you continue when you where the other server stopped. Why do would you ever need EJB
clustering, at all?
4- For now I don't need any kind of ACID functions and there is no need for EJB transaction capabilities (a function will mostly have reads and might have a single write), and I have an API that gives me some async calls. Is there a need for EJBs (yes I have read all the EJB threads in this forum)
5- The web server usually is put in the same computer and JVM as the application EJB container so that calls from a tier to an other wouldn't make performance problems. Now, since the requests are sprayed accross these applications servers at the web server/load balancer and they also deal with failover and so on, why would you ever need EJB container to sit and take place for your valuable tomcat
server? for transactions? and in case Tomcat acts as a client to the EJB layer and can broadcast a request to get saccess to JNDI and search for EJB eobjects, it would not help if they sit together, since if JBoss is dead in a machine, Tomcat in the same machine is probably dead.
6- Any experiance with free software based Load balancers? Any free layer 7 switch software?
Well sorry for the long message,
ANY help will be very very much appreciated.
Thanks in advance