We are planning to build a web application that can potentially have millions of concurrent users. We plan to use Java 6, Spring, Spring JDBC or Hibernate, MySQL, EhCache, JQuery. I know obvious things like caching frequently needed data, making sessions compact, tuning SQL, paging results, not allocating many objects to reduce GC time.
- Are there any frameworks that supports such web applications?
- How about using a clusters or a load balancer?
- How should we handle session information? (client side, server side, database)
- What tool can be used to check performance?
- Any good book to read about this topic?
- Any other best practices
- Things not to do?
- Should we consider a REST best architecture?