Welcome to the final article in a series on my experience developing services with
Apache Camel. I learned how to implement CXF endpoints using its
Java DSL, made sure everything worked with its testing framework and integrated Spring Boot
for external configuration. For previous articles, please see the following:
This article focuses on load testing and tools for monitoring application performance. In late July, I was
asked to look into load testing the new Camel-based services I'd developed. My client's reason was simple:
to make sure the new services were as fast as the old ones (powered by IBM Message Broker).
I sent an
email to the Camel users mailing list asking for advice on load testing.
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?
In reply, I received suggestions for Apache's ab
and Gatling. I'd heard of Gatling before, and decided to try it.
This article shows how to use Gatling to load test a SOAP service and how to configure Log4j2 with Spring Boot. It
also shows how hawtio can help monitor and configure a Camel application. I hope you enjoyed reading this series
on what I learned about developing with Camel over the past several months. If you have stories about your experience with Camel (or similar integration frameworks), Gatling, hawtio or New Relic, I'd love to hear them.
It's been a great experience and I look forward to developing solid apps, built on open source, for my next client. I'd like to
get back into HTML5, AngularJS and mobile development. I've had a good time with Spring Boot and JHipster this year
and hope to use them again. I find myself using Java 8 more and more; my ideal next project would embrace it as a
baseline. As for Scala and Groovy, I'm still a big fan and believe I can develop great apps with them.
If you're looking for a UI/API Architect that can help accelerate your projects, please let me know! You can learn more about my extensive experience from my LinkedIn profile.