2
votes

Is the performance of HornetQ core API better than JMS? the only question I found in this forum that resembels my question was in this post, but it only talked about the core API having more features and didn't talk about the performance benefits of either options.

I'm asking this because in HornetQ User Manual (section 5.1) it's written that: When a user uses the JMS API on the client side, all JMS interactions are translated into operations on the HornetQ core client API before being transferred over the wire using the HornetQ wire format.

Note that in our application we use a Queue with several consumers on the same Queue, and we have several queues. The Queue contains HornetQ's ClientMessages, and each ClientMessage contains serialized POJO serialized as String and added to the message as a String property. we pool the consumers, messages and producers using Apache ObjectPool.

1

1 Answers

2
votes

The overhead of JMS in top of the hornetq-core is really small.

The only thing is if you use the core-api you may have a better tuning for your needs such as asynchronous confirmations, a better control on when you flush ACKs and other things that are implicit behavior on the JMS implementation.