In an effort to keep all of the configuration within the code, my design for
implementing asynchronous messaging failed our load tests.  Our application
was able to withstand 1400 hits per second before implementing ActiveMQ with
the following model:
* embedded JVM broker
* non-persistent messaging
* consumer took messages from producer with the same app and made httpClient
sends to the remote machine using REST

After tweaking lots of settings we never made it above 800 hits/second.  I
then decided to RTFM and educate myself on Enterprise Integration Patterns.

The new design is much simpler and my hope is that it will increase our
application performance because...
1) The processing of the queue will now be outside of my application's JVM
2) My application will not function as both a producer and a consumer
3) The consumer will not be making httpClient (hence using more threads)

Proposed design:
* client-server topology with standalone broker
* non-persistent messaging
* producer client sends to queue, consumer client on remote machine listens
to queue

Does my thought process make sense?  I am not necessarily looking to
increase the number of messages sent through the queue, but to allow my
application to have better response times.
-- 
View this message in context: 
http://old.nabble.com/Poor-design%2C-poor-performance.--Better-design%2C-better-performance--tp27168341p27168341.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to