2016-03-25 13 views
0

クラスタ内にRabbitMQ実装を実行する2つの厄介なAWSホストがあります。ハードウェアをアップグレードする必要があるため、交換用サーバーを作成するシェフの料理書を作成しました。私たちは、むしろ手で再現していないでしょう代替サーバー上のRabbitMQ管理ユーザーなどの複製

ことの一つは、新しいものに古いホストからその原料を取得するための最良の方法は何等の管理ユーザー、キュー、

のですか?私はそれが/var/lib/rabbitmq/mnesiaディレクトリにあるすべてのものだと信じています。

1つのホストから別のホストにファイルをコピーすることをお勧めしますか?

これを行うためのプログラム的手段はありますか?

シェフの料理本にコーディングすることはできますか?

答えて

0

新しいハードウェアに新しいrabbitmqノードを作成すると、その新しいノードにすべてのユーザーが追加されます。 (管理プラグイン付き)RabbitMQの の画像と

  1. 実行ドッキングウィンドウコンテナや他のコンテナを実行し、最初の1
  2. の クラスタにそのノードを追加し、ユーザー
  3. を作成します。これは試すのは簡単です最初の1でのRabbitMQを殺す、または ドッキングウィンドウコンテナを削除すると、あなたはまだ

私が書いたと2日に新しく 作成したユーザーを持っている(しかし、今マスター)ノードいることがわかりますこの方法でクラスタを作成するほうが早いので、ドッカーを使用することもできますが、すでにクラスタがある場合は、必要に応じてテストに使用できます。キューとの交流のために

、私はhigh availabilityためのRabbitMQのドキュメントページにあるほとんどすべてを引用する必要はありませんが、私はちょうどあなたが以下に注意を払わなければならないと言うだろう:

  • 排他的なキュークライアント接続がなくなった後、彼らはなくなっているので、
  • キュー私はどうなる

(それを考慮するのが賢明だろうでない場合でも、必要でない場合は、任意の、設定している場合)ミラーリング徐々に移行し、tを待っている彼は空になり、古いハードウェア上のノードを殺すのを待ちます。それはおそらくビッグバンの方法でやり遂げることができるかもしれないが、より危険に見える。実行中のシステムで、キューミラーリングを設定し、手動で同期するための適切なタイミングを見つけようとするのではなく、注意してください。これはブローカーのパフォーマンスに大きな影響を与えます。

さらにそこにこのshovel pluginがある(私はそれを使用したりしても、それを探求していないことを指摘しなければならない)が、それは(リンクを形成引用)以来行くための別の方法かもしれない:

要するに、ショベルは簡単なポンプです。各シャベル:

は、ソース・ブローカおよび宛先ブローカーに接続する宛先 ブローカーに各メッセージを再発行し、キューから メッセージを消費する(デフォルトでは、使用して、元の交換名と routing_key)。

関連する問題