1
votes

I'm using Apache, actually IBM HTTP server with WebSphere plugin, as reverse proxy and load balancer in front of my WebSphere Application Servers (currently 8.5.5).

In the next future I'll need to use long polling request in a massive way, with tens of thousands of requests active at the same time. On the WAS side the asynchronous servlets should address my needs, but I'm scared that the thread per request model of apache will be the main factor limiting the scalability of my servers. Every request will use a thread in apache and a TCP port to allow the WebSphere plugin to connect to WAS.

Is there any Apache setting that can help with this architecture or any other software solution that can work as reverse proxy for WAS and address long polling requests better then Apache?

Thanks

1

1 Answers

4
votes

Your concern is well founded. These requests would tie up somewhat scarce threads on an Apache based server even while offloaded on WAS. Of course threads in Apache are nowhere near as scarce/costly as threads in the AppServer.

I suspect you could still get to tens of thousands with a few instances of Apache/IHS. Normally, you only have a few thousand threads, but if you expected them all to be idle most of the time it seems 5000+ is probably doable per instance.

Fully async proxies like WebSphere DataPower or nginx or Apache Traffic Server would not really use resources proportional to # of (idle) connections.