[rabbitmq-discuss] RabbitMQ Implementation
Phill Pafford
phillpafford at gmail.com
Wed Jan 30 15:53:38 GMT 2013
Here is a little about the setup I have currently. (
http://stackoverflow.com/questions/14594569/rabbitmq-implementation )
- REST API to push ( POST ) data into a queue
- The Queue has a Consumer that's always running and Produces to en Exchange
- The Exchange routes to several other Queues ( like 20+ )
- Each of the ( 20+ ) Queues does a specific task ( The Consumers always
runs as well )
- Cron job runs to check if all the ( 20+ ) Tasks are completed and
Produces to yet another Queue
I'm not sure I like the Consumers running all the time as each Consumer
utilizes around 300MB of Ram ( I think it's MBs, it's not in front of me at
the moment ) and I'm looking for another implementation.
M <-- Message coming from REST API
|
|
+-First Queue
|
|
| <-- The Exchange
/|\
/ | \
/ | \ <-- bind to multiple queues ( 20+ )
Q1 Q2 Q3 <-- Each Queue is a task that must be completed
| <-- CRON runs to check if all queues above have completed
|
|
Q4 <-- Queues 1,2 and 3 must finish first before Queue 4 can start
|
C <-- Consumer
I the related question below it was suggested to use RPC but the problem
with this is the RPC ( to my understanding ) Will have multiple instances.
This is a resource intense process as is and I think by adding the RPC
calls it will just bog down the server and then become unresponsive (
Please correct me if I'm wrong ).
Another approach was to use the Aggregator pattern
- http://www.eaipatterns.com/Aggregator.html
Which looks exactly what I need but I found the documentation limited. Has
anyone done this pattern?
My question is I'm not happy with how it's currently implemented and I'm
looking for ways to improve the process. I'm looking to either get rid of
the CRON, Implement a new Pattern and Not have the Consumers run all the
time.
The process currently also only supports a single instance of each
consumer. It can have multiple consumers but how we have implemented it we
only wanted one at the time.
This is implemented in PHP, Symfony2 Framework using the RabbitMQBundle
Related Question:
-
http://stackoverflow.com/questions/13861459/rabbitmq-wait-for-multiple-queues-to-finish
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130130/fea82468/attachment.htm>
More information about the rabbitmq-discuss
mailing list