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?

Many thanks!