What's the best scalable modern architecture for a high volume website (Java)
We have a website that is getting over 1m hits a day.
The site is running off an old architecture (Struts Tomcat Hibenate MySQl) with no real scope for scalability.
Now that we are expanding further I am looking for a modern (not too bleeding edge please) web architecture.
My first thoughts were to use Google App Engine - but I'm not sure that is open enough.
Our developers are all Java so it would need to be something they could pick up easily.
Ideally I'd like to run the same way as DIGG, Twitter,开发者_StackOverflow社区 Amazon etc.
If you know how they do it - or have a suggestion I'd be very interested to know.
Unless you've got major bottlenecks baked into the design, then hardware is almost always going to be the best way to scale.
By 'best' I mean
- cheapest
- quickest
- best performance increase
- guaranteed results
It sounds like your current setup is having problems? Can you give any information on what kind of problems you have?
Edit: Can you give info on your current hardware setup? How many web servers (presumably running Apache?), how many app servers, how many DB servers?
I'd exhaust all possibility for "no real scope for scalability" before I rewrote my app. It might just mean that you can only scale horizontally by throwing more hardware and clustering at the problem.
Google App Engine will mean JPA instead of Hibernate and MySQL, because I believe they use BigTable in the back.
Hire a team or even better a company which has an experience in building scalable solutions. Promote current developers in Business Analysts and make them help the scalable solutions specialists with the business logic.
Have a look if you can get clustering cheaply with Terracotta.
For a rewrite: Have a look at what is already present in Java EE 6. You might find it fits your needs nicely. Glassfish 3.1 will support clustering before you are done rewriting.
精彩评论