I have to write an architecture case study but there are some things that i don’t know, so i’d like some pointers on the following :
The website must handle 5k simultaneous users.
The backend is composed by a commercial software, some webservices, some message queues, and a database.
I want to recommend to use Spring for the backend, to deal with the different elements, and to expose some Rest services.
I also want to recommend wicket for the front (not the point here).
What i don’t know is : must i install the front and the back on the same tomcat server or two different ? and i am tempted to put two servers for the front, with a load balancer (no need for session replication in this case). But if i have two front servers, must i have two back servers ? i don’t want to create some kind of bottleneck.
Based on what i read on this blog a really huge charge is handle by one tomcat only for the first website mentionned. But i cannot find any info on this, so i can’t tell if it seems plausible.
If you can enlight me, so i can go on in my case study, that would be really helpful.
Thanks 🙂
To expand on my comment: think through the typical process by which a client makes a request to your server:
So in designing your architecture, you need to think about things such as:
Then more generally, I’d say consider:
I would also agree with what other people have said– at some point you need to not be too theoretical. Design something sensible, then run a test bed to see how it actually copes with your expected volumes of data. (You might not have the whole app built, but you can start making predictions about “we’re going to have X clients sending Y requests every Z minutes, and p% of those requests will take n milliseconds and write r rows to the database”…)