I need high load - 160 req/s - with large timeout - 20 s - proxy for failover and load balancing, it has to serve async 6400 pending requests.
I have following case:
I have to expose webservice, which logic is to return result of call of another webservice A-ws, if call to A-ws timeout, I have to return result of call of B-ws, A-ws and B-ws return the same result, but have different location - so I have to build load balancing and failover solution (I will randomly call A and B as first), meanwhile I have to do some logging to database of requests and responses and their statuses. Call to A-ws and B-ws have timeout of 20s (it's hard requirement), system has to service 160 req/s so I can have 20*2 * 160 = 6400 pending requests, so non blocking async is required
Now I did some POC with tomcat NIO, async servlets, async cxf webservice server, and async cxf webservice client, solution works quite good, but is not elegant, I wonder if I could do it better and simpler with camel.
Do you think it is possible with camel ?
does camel support both NIO, and async webservice server and async ws client ?
will client and server work async AND withoud pending background thread for each request ?
In my solution on tomcat I can serve all pending requests with just one thread will it be possible with camel ?
Is it possible to deploy camel on tomcat and expose cxf webservice with cxf servlet ? or I should use fuseesb, or camel standalone ?
Is similar solution possible with camel for https requests and https web page - I expose https www page, that is failover and loadbalancing proxy to 2 other www webpages, both backing web pages have 20s timeout, and load can be 160req/s (similar as above webservice) ?