I was looking for any official performance benchmark for Spring Integration framework,
however was unable to find.
I decided to create my own in order to better understand the framework’s performance ability.
I measured my test on a physical server that has 8 CPU’S.
The producers and the consumers are in the same network on different JVM’SMachines.
The application included two Direct (Queue’s) channels:
Producer1 – > Queue1 -> Consumer1 -> Producder2-> Queue2 -> Consumer2
The message is 6 characters String converted to a ByteArray.
The message measurement starting point at Producder1
For executing 3 million messages:
1. Throughput: ~10,000 m/s
2. Latency: ~0.1244 ms
Pretty good results compared to the current MQ’s market,
Using JMX in the Enterprise world is very essential for monitoring and alerting our application.
Enable JMX in our Spring-Integration framework is pretty easy.
With JMX support we can get reports on our messages delivery, their current status, control our channels and endpoint modules.
So how we do that?
1. Adjust the Namespace in the Spring Integration xml:
2. Add the following tags for enabling mbeanServer ( that server will be able to export all our annotated beans including the Spring-Integration ones):
3. We need html adaptor in order to see all mbeans on our browser:
<bean name="adaptor:name=htmlAdaptor" class="com.sun.jdmk.comm.HtmlAdaptorServer"
4. Enabling export of Spring-Integration beans to JMX:
<context:mbean-export default-domain="spring.application" />
That will do the work,