2016-12-28 10 views
0

ウィンドウで、rabbitmq-serverstart/stopコマンドを使用している場合、RabbitMQの耐久性キューを超えるデータは削除されます。 RabbitMQサーバーを起動すると、キューが再作成されたようです。rabbitmq-serverは耐久性のあるキューでデータを失い始めます

rabbitmqctlstop_app/start_appを使用しても、データは失われません。どうして?

サーバがダウンした場合、どうすればデータが失われないようにすることができますか?キューは耐久性のある作り

答えて

0

設定の問題:私はrabbitmq sbinディレクトリからrabbitmqを開始していました。私はrabbitmqを再インストールし、windowsサービスにrabbitmqを追加しました。今私のコンピュータでデータの消失の問題が解決されました。私がWindowsサービスを開始/停止すると、rabbitmqはデータを失うことはありません。

0

はありません十分 おそらくあなたが使用します「永続」メッセージ

Javaで

耐久性などの交換を宣言するだけでなく、送信することも必要があります:

channel.basicPublish("", "sample_queue", 
     MessageProperties.PERSISTENT_TEXT_PLAIN, // note that this parameter is not null! 
     message.getBytes()) 

希望これをヘルプ

+0

私はメッセージを持続しています。私がrabbitmqctl start/stopを使うと、私は永続的なメッセージを失うことはありません。メッセージを公開するときはdeliveryMode = 2を使用しています。 – melihcoskun

+0

私は、start_app/stop_appはrabbit mqそのものを再起動することを知っています。すべての永続的なものは、mnesiaと呼ばれるデータベースに格納されます。そのウサギのようにerlang VMの上で動作します。 Linuxでは、ps -ef |と入力することができます。 grep rabbitと多くのプロセスがあることがわかります。だから、rabbitmq-server stopは、記憶を含むすべてを止めるでしょう。それは2つのコマンドの違いです。ありがとう、 –

+0

停止するMnesiaは問題ではないはずです。私は再びrabbitmqを開始しているからです.Mnesiaはdbであり、データベースは再起動するとデータが失われません。私は単なるrabbitmqインスタンスをクラスタリングしていないので、単一のmnesia single rabbitmqクラスタが自分のシステムで動作していると仮定しています。 – melihcoskun

関連する問題