<DIV>If the producer sends plenty of messages constantly over the memory throttling,and couldn't stop, where these messages is? stay on the side of producer? in this case, i think the producer would crash out of memory.</DIV>
<DIV> </DIV>
<DIV>>Hagbard,<BR><BR>>Since 2.x, RabbitMQ will no longer allow the Erlang process to run out <BR>>of memory and stop due to fast producers and slow consumers.<BR><BR>>If you have a fast producer running constantly, accompanied by a slow <BR>>consumer then the number of queued messages will grow. To prevent this <BR>>from causing out of memory problems, Rabbit will throttle the producer <BR>>once the memory high watermark is hit.<BR><BR>>The throttling works by simply blocking the producer from sending any <BR>>more data over the TCP socket. Once memory drops below the high <BR>>watermark, due to the consumer catching up or messages being flushed to <BR>>disk, the producer can send data again.<BR><BR>>Note that your producer might bounce off the watermark frequently if it <BR>>just keeps publishing without let up.<BR><BR>Rob<BR><BR>>><A href="mailto:Hagbard@gmx.de" target=_blank><FONT color=#4b4632>Hagbard@gmx.<WBR>de</FONT></A> wrote:<BR>>> Hi,<BR>>> im new to RabbitMQ and i have a question about the memory usage of RabbitMQ. I read that since RabbitMQ 2.x i don't need to care about fast producers and slow consumers and so don't need to care about the amount of messages in a queue and memory usage. After a test yesterday with 2GB memory and 4M messages in a queue (no consumer) RabbitMQ reached high memory watermark and stopped. Can somebody explain that behaviour?<BR>>><BR>>> Thanks a lot<BR>>> Hagbard<BR></DIV>