I am creating some Web Services that would have 2000 concurrent users. The services are offered for free and are hence expected to get a large user base. In the future it may be required to scale up to 50,000 users.
There are already a few other questions that address the issue like - http://stackoverflow.com/questions/2567254/building-highly-scalable-web-serviceshttps://stackoverflow.com/questions/2567254/building-highly-scalable-web-services
However my requirements differ from the question above.
For example - My application does not have a user interface, so images, CSS, javascript are not an issue. It is in Java so suggestions like using HipHop to translate PHP to native code are useless.
Hence I decided to ask my question separately.
This is my project setup -
- Rest based Web services using Apache CXF
- Hibernate 3.0 (With relevant optimizations like lazy loading and custom HQL for tune up)
- Tomcat 6.0
- MySql 5.5
What are the best practices to abide by in order to make a Java based application scalable?