Load Testing Camel Routes

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Load Testing Camel Routes

Matt Raible
Hello all,

I'm getting ready to put a Camel / CXF / Spring Boot application into production. Before I do, I want to load test and verify it has the same throughput as a the IBM Message Broker system it's replacing. Apparently, the old system can only do 6 concurrent connections because of remote database connectivity issues.

I'd like to write some tests that make simultaneous requests, with different data. Ideally, I could write them to point at the old system and find out when it falls over. Then I could point them at the new system and tune it accordingly. If I need to throttle because of remote connectivity issues, I'd like to know before we go to production. Does JMeter or any Camel-related testing tools allow for this?

Thanks,

Matt
Reply | Threaded
Open this post in threaded view
|

Re: Load Testing Camel Routes

Christian Mueller
Administrator
Hi Matt!

We are using httpcore-ab [1] to load test our web services. Unfortunately,
you cannot change the payload for each test, but it works well for us.

[1]
http://search.maven.org/#artifactdetails|org.apache.httpcomponents|httpcore-ab|4.3.2|jar

Best,

Christian
-----------------

Software Integration Specialist

Apache Member
V.P. Apache Camel | Apache Camel PMC Member | Apache Camel committer
Apache Incubator PMC Member

https://www.linkedin.com/pub/christian-mueller/11/551/642


On Tue, Jul 29, 2014 at 10:11 PM, Matt Raible <[hidden email]>
wrote:

> Hello all,
>
> I'm getting ready to put a Camel / CXF / Spring Boot application into
> production. Before I do, I want to load test and verify it has the same
> throughput as a the IBM Message Broker system it's replacing. Apparently,
> the old system can only do 6 concurrent connections because of remote
> database connectivity issues.
>
> I'd like to write some tests that make simultaneous requests, with
> different data. Ideally, I could write them to point at the old system and
> find out when it falls over. Then I could point them at the new system and
> tune it accordingly. If I need to throttle because of remote connectivity
> issues, I'd like to know before we go to production. Does JMeter or any
> Camel-related testing tools allow for this?
>
> Thanks,
>
> Matt
Reply | Threaded
Open this post in threaded view
|

RE: Load Testing Camel Routes

Elvio Caruana (ecaruana)
Hi Matt,

I've replaced JMeter with Gatling [1], which has a nice DSL to work with and in my opinion much faster to write tests when compared to JMeter. Having said that, the apache ab tool (cli) [2] is useful for the initial checks. If you have routes that work concurrently, Camel's JMX statistics has proved invaluable to find bottlenecks especially when tuning the optimal number of threads required. A good profiling tool also helps.

Also, if you're using Jetty for CXF, keep an eye on its threading parameters.

[1] https://github.com/excilys/gatling , https://github.com/excilys/gatling/wiki/Gatling-2
[2] http://httpd.apache.org/docs/2.2/programs/ab.html


Elvio

-----Original Message-----
From: Christian Müller [mailto:[hidden email]]
Sent: 29 July 2014 21:32
To: [hidden email]
Subject: Re: Load Testing Camel Routes

Hi Matt!

We are using httpcore-ab [1] to load test our web services. Unfortunately, you cannot change the payload for each test, but it works well for us.

[1]
http://search.maven.org/#artifactdetails|org.apache.httpcomponents|httpcore-ab|4.3.2|jar

Best,

Christian
-----------------

Software Integration Specialist

Apache Member
V.P. Apache Camel | Apache Camel PMC Member | Apache Camel committer Apache Incubator PMC Member

https://www.linkedin.com/pub/christian-mueller/11/551/642


On Tue, Jul 29, 2014 at 10:11 PM, Matt Raible <[hidden email]>
wrote:

> Hello all,
>
> I'm getting ready to put a Camel / CXF / Spring Boot application into
> production. Before I do, I want to load test and verify it has the
> same throughput as a the IBM Message Broker system it's replacing.
> Apparently, the old system can only do 6 concurrent connections
> because of remote database connectivity issues.
>
> I'd like to write some tests that make simultaneous requests, with
> different data. Ideally, I could write them to point at the old system
> and find out when it falls over. Then I could point them at the new
> system and tune it accordingly. If I need to throttle because of
> remote connectivity issues, I'd like to know before we go to
> production. Does JMeter or any Camel-related testing tools allow for this?
>
> Thanks,
>
> Matt