Hi,<div><br></div><div>Can you please help me understand what is going on when I lose a member of a cluster?</div><div>I'm seeing an odd behaviour that makes me worry. This queue is supposed to hold</div><div>credit card transactions, so we _really_ want to avoid double-processing messages.</div>
<div><br></div><div>Cluster consists of 2 members: (rabbit@mq1, rabbit@mq2).</div><div><br></div><div>1) client connects to mq1, creates durable queue, pushes 100 persistent messages in</div><div> root@mq1:~# rabbitmqctl list_queues</div>
<div> Listing queues ...</div><div> testqueue 100</div><div> ...done.</div><div><br></div><div>2) mq1 rabbitmq is stopped</div><div><br></div><div>3) client connects to mq2, creates durable queue, pushes 100 persistent messages in</div>
<div> root@mq2:~# rabbitmqctl list_queues</div><div> Listing queues ...</div><div> testqueue 100</div><div> ...done.</div><div><br></div><div>4) mq1 rabbitmq is started</div><div> root@mq2:~# rabbitmqctl list_queues</div>
<div> Listing queues ...</div><div> testqueue 200</div><div> ...done.</div><div><br></div><div>5) client drains the queue</div><div><div> rborkows@mq1:~/client/bunny$ ./bunny-subscriber </div><div> Drained 200 messages in 0.475371 seconds</div>
</div><div><br></div><div>6) queue is now empty</div><div> root@mq2:~# rabbitmqctl list_queues</div><div> Listing queues ...</div><div> testqueue 0</div><div> ...done.</div><div><br></div><div>7) mq1 rabbitmq is restarted, 100 credit card transactions pop back into existence, unhappy customers, etc.</div>
<div> root@mq1:~# /etc/init.d/rabbitmq-server restart</div><div> Restarting rabbitmq-server: SUCCESS</div><div> rabbitmq-server.</div><div> root@mq1:~# rabbitmqctl list_queues</div><div> Listing queues ...</div>
<div> testqueue 100</div><div> ...done.</div><div><br></div><div>The expected behaviour is that after step 5 the messages are _gone_ from the queue, never to be seen again.</div><div>What's going on here?</div>
<div><br></div><div>-- </div><div>Robert Borkowski<br>
</div>