activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gmicky <>
Subject Big difference in throughput when using dedicated connection vs sessions and sendsync pers messages.
Date Wed, 23 Oct 2013 10:48:52 GMT

we are trying to achieve hight througput using persistent messages together
with sync send and queues. However we realised there are some limitations
that could be maybe resolved or explained but you. 

Scenario 1 - Speed ok , unusable with springs integration 
Consumers and producers are connected using multiple separate connections
/40 producers using 40 connections , 40  consumers using 40 connection per
queue/ . With this scenario we achieve very high throughput of cca 500 000
messages per minute. However our dev framework is springs and it only allows
one connection and concurency is solved on session bases. 

Scenario 2 - Producing with multiple connections no consumers 
Producers connected using  multiple separate connections same as in scenario
1 but no consumers are connected at time of producing. I would expect rate
of writing to kahadb to be same as in scenario 1 but it does not happen.
Message production rate is at cca 18 000msg/minute. I do not really
understand this  as messages in scenarion 1 also have to pass persistent
store but do so at much much higher rates when they have consumers connected
with dedicated connections. 

Scenario 3 - 
One connection and multiple sessions for consumers and same for producers /1
connection - 40 consumer sessions and 1 connection and 40 producer sessions.
This works fine with springs integration but the performace is again very
slow at cca 18 000msg/minute. 

Producer flow contor is switched off and no memory limits on queue are
imposed so throttling is not an option.We use single broker so NOB options
do not interfere. 

 Leaving springs integration and using multiple connections for producers
and consumers is also not a option. Having such low througput as in scenario
2) and scenario 3) is also not a option. 

Could you please advice what is the problem with using 1 connection and
multiple session for high throughput is it amq thread model? I can imagine
some limits due to single socket used but I would not think the impact on
throughput would be so huge. Also could you please explain why producing
with no consumers is so slow compared to producing with multiple consumers
connected each by own connection? 

Thanks for answers 

View this message in context:
Sent from the ActiveMQ - User mailing list archive at

View raw message