[rabbitmq-discuss] FW: One Producer, Many Consumers, Manyphysical nodes

Bell, Paul M. pbell at syncsort.com
Thu Jan 19 21:02:44 GMT 2012


Thanks, guys.

So, as long as I defer the ACK, the message remains in queue.

In re (1): exactly Jerry, application specific. I see the queue as containing useful information about the application's progress and its current state. Hence, I didn't want a message to be deleted "merely" because the worker consumer pulled it from the queue. 

As noted earlier, I am (but for some modest "academic" exposure) new to MOM. Using a queue as a persistence store may not be the best design idea. My thinking is that the data is there in the queue, so why incur the overhead of copying it to the lowest layer database store? I envision an external bit of software, e.g., a reporting tool, being able to query the contents of a queue. I suppose it would suffice if the reporting tool could read through the queue sequentially (though the ability to access a single message directly would be nice).

But maybe I am thinking about this the wrong way. Perhaps the only way to obtain messages from a queue is to be a proper consumer...?

I appreciate the guidance.

-Paul 

-----Original Message-----
From: Jerry Kuch [mailto:jerryk at vmware.com] 
Sent: Thursday, January 19, 2012 1:46 PM
To: Bell, Paul M.
Cc: rabbitmq-discuss at lists.rabbitmq.com; Alvaro Videla
Subject: Re: [rabbitmq-discuss] FW: One Producer, Many Consumers, Manyphysical nodes

Hi, Paul...

A tiny typo in Alvaro's mail me be throwing you off.  He 
meant:

"When the message is delivered to a consumer and then that message
 is *ACKed* back to the server, then the message is automatically 
 deleted by RabbitMQ."

The reason that Rabbit doesn't consign the delivered message to
oblivion until a client has ACKed it is to guard against the lost
message you'd experience if Rabbit delivered a message to a client,
destroyed its local copies (regardless of whether it's current living
in RAM, on disk, or both), and then the client crashed before
completing whatever meaningful action it intended to perform with
the received message.  The disappearance of the client connection
lets Rabbit know that the message needs to be re-queued for
re-delivery.

If I'm reading you correctly that covers scenario 2 in your mail
below.  In scenario 1, are you wanting to have some permanent record
somewhere of messages that have passed through Rabbit for some
application specific reason?  If so, there are a couple of options
for doing that.

Best regards,
Jerry

----- Original Message -----
From: "Paul M. Bell" <pbell at syncsort.com>
To: "Alvaro Videla" <videlalvaro at gmail.com>
Cc: rabbitmq-discuss at lists.rabbitmq.com
Sent: Thursday, January 19, 2012 8:46:18 AM
Subject: Re: [rabbitmq-discuss] FW: One Producer, Many Consumers, Manyphysical nodes





Thank you, Alvaro. 



I had assumed (but Michael corrected me) that once a consumer retrieved a message, that message would disappear from the queue. Can you point me to examples/docs that show how to 1) cause a message to persist despite its retrieval by a consumer; 2) how explicitly to delete such a persisted message from a queue? 



-Paul 



PS: looking forward to your book. Any chance Amazon will have it before March? 








From: Alvaro Videla [mailto:videlalvaro at gmail.com] 
Sent: Thursday, January 19, 2012 11:24 AM 
To: Bell, Paul M. 
Cc: rabbitmq-discuss at lists.rabbitmq.com 
Subject: Re: [rabbitmq-discuss] FW: One Producer, Many Consumers, Manyphysical nodes 



Hi, 





RE - Keeping messages: 





RabbitMQ takes care of queueing messages, that is, of keeping them in queues. The only thing you have to do as a user is publishing them. 





RE - Deleting messages: 





When the message is delivered to a consumer and then that messages is asked back to the server, then the message is automatically deleted by RabbitMQ (this is an oversimplification BTW, there are many options that might modify message durability). 





Regards, 





Alvaro 





On Thu, Jan 19, 2012 at 5:17 PM, Bell, Paul M. < pbell at syncsort.com > wrote: 

Michael, 

Thanks for the reply. 

I have finished working through a few of the tutorials you referenced. Either I missed something or haven't yet gotten to the right tutorial. 

You've told me that it's possible to leave a message in a queue, i.e., that a message can persist in its queue even after it has been received by a consumer. Can you tell me how this is done? 

Also, such an approach suggests the need to explicitly delete the message from the queue. Is there a way to do this? 

Cordially, 

Paul 

>Paul, 

>Looking through the tutorials will obviate many further questions. 

>On this specifically, 

>> When a consumer pulls a message from the queue, is there a way to 
>> leave that message in queue? If so, can queue elements be updated 
>> in-place, e.g., with "status" info about the state of the work that 
>> the message (task) represents? 

>No. You can leave it in the queue, but you can't change it. You'd have to post another message. 

>-Michael 




ATTENTION: ----- 

The information contained in this message (including any files transmitted with this message) may contain proprietary, trade secret or other confidential and/or legally privileged information. Any pricing information contained in this message or in any files transmitted with this message is always confidential and cannot be shared with any third parties without prior written approval from Syncsort. This message is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any use, disclosure, copying or distribution of this message, in any form, is strictly prohibited. If you have received this message in error, please immediately notify the sender and/or Syncsort and destroy all copies of this message in your possession, custody or control. 
_______________________________________________ 
rabbitmq-discuss mailing list 
rabbitmq-discuss at lists.rabbitmq.com 
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss 


_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss at lists.rabbitmq.com
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss


More information about the rabbitmq-discuss mailing list