Hi,
We're creating a web system using Java and Servlet technology (actually Wicket for the presentation layer) and we need our system to be available nearly always as our customers will be quite dependent on it.
This has lead us to look for a good book focusing on the subject or another resource which explains how to set up a more redundant and fail safe architecture for our system.
A non exclusive list of questions we have at the moment:
- How do you have one domain name (like http://www.google.com) which are actually served by several servers with load balancing to distribute the users? Isn't there always a point which is weaker in such a solution(the two [as there can't be more] DNS servers for google.com in their case)?
- It seems like a good idea to have several database servers for redundancy and load balancing. How is that set up?
- If one of our web servers goes down we would like to have some kind of fail over and let users use one that is still up. Amongst other things the sessions have to be synchronized in some way. How is that set up?
- Do we need some kind of synchronized transactions too?
- Is Amazon Computer Cloud a good option for us? How do we set it up there? Are there any alternatives which are cost effective?
- Do we need to run in a Java EE container like JBoss or Glassfish?