I have created a spring-boot application where I used the camel-restlet component to expose my camel routes as rest endpoints.
My camel routes are simple: they accept the request from a northbound rest endpoint, do request processing, call another southbound rest endpoint via camel-netty4-http component, process the response and send it back to northbound.
Now I'm doing performance analysis using JMeter. I observed that with 10 threads, my camel route performance (avg latency 220ms and throughput ~38) is matching with the results that I got from JMeter when I call the same southbound rest endpoint directly via JMeter (avg latency 210ms and throughput ~39) .
But when I increase the number of threads from 10 to 100 or more in Jmeter, the results are strange:
- when I call southbound rest endpoint directly: Latency 2230 ms & throughput ~20
- when I call the same southbound rest end point via my camel route, Latency is 230 ms and throughput ~38.
I did the same test by just changing the rest component from camel-restlet to camel-servelet, camel-jetty and the results are matching with the results that I got from JMeter when call southbound rest endpoint directly via JMeter (avg Latency 2230 ms & throughput ~20).
Can anyone help me understand the reasons for getting better performance with camel-restlet component when compared with other camel components (camel-jetty or camel-servlet)?