views:

196

answers:

2

My "normal" development is based on java (1.6), a database (db2, oracle, mysql) and an application server (JBoss).

I wonder if there is a limit of concurrent users that I can handle with this configuration. I think running a site like google.com would'nt be possible this way.

But where is the limit?

If things get bigger, do I have to switch to a more light weight solution like tomcat or do I have to give up java and use php, python etc.?

+2  A: 

Google's servers ran (mostly) a mixture of Java, C++ and Python last I heard, so Java's definitely a member in the high-performance server community. The key secret here, though, is how well the server software scales horizontally - if you're going to aim to serve the world's entire population, no single server, no matter how fast, will be fast enough - what you need is to be able to set up lots and lots of servers to handle the load in parallel.

JBoss supports horizontal scaling via clustering, once you've got that up and running, all that matters is how many servers you can afford (well, almost all that matters). Also, you'll notice that your database server is the real bottleneck, not the web server.

gustafc
true... and don't forget to lighten the load on the databases using caches where possible.
Toad
+2  A: 

It's impossible to cite a "limit". It depends on your hardware, your application, your configuration, your usage pattern, etc.

If your database schema is poorly optimized or doesn't use proper indexes, no change of language will help you.

If your middle tier is chatty and dies a latent death with each transaction, no change of language will help you.

If your app is written well and you're finding that you still can't keep up, using another language won't help. The whole point of doing something enterprise is to make hardware scaling possible.

duffymo