rabbitmq haクラスター
-
30-09-2019 - |
質問
HAを使用した2つ(またはそれ以上)のノードクラスターとしてRabbitMQをセットアップしたいと考えています。
ユースケース:クライアントプロデューサーアプリ(C#.NET)は、クラスターに2つのノードがあり、クラスターに公開されていることを知っています。さまざまなコンシューマーアプリ(C#.NET)はクラスターに接続し、プロデューサーによって生成されたすべてのメッセージを取得します。少なくとも1つのノードが稼働し、プロデューサーを実行している限り、消費者はすべてエラーなしで動作し続けます。ノードAとBが実行され、Bがしばらく死ぬと仮定し、その後再起動し、しばらくしてA aが死にます。クライアントはすべて、少なくとも1つのノードが増加しているため、エラーを受信せずに機能し続けます。
このように箱から出して作業するようにできますか?
Windows/.NETアプリケーション環境に適した(コマーシャルOK)他のMQはありますか?
解決
このように箱から出して作業するようにできますか?
いいえ。ノードがダウンすると、すべての接続が閉じられます。 AMQP接続はステートフルであるため、これを回避する方法はありません。達成できるのは、1)ブローカーがダウンし、2)すべてのクライアントが切断され、3)クライアントは他のノードに接続(オリジナルとして仮定)であり、賢明ではありません。
補足的には、Rabbitは現時点でアクティブアクティブHAクラスタリングをサポートしていません。それはサポートしています アクティブパッシブクラスタリング の形式 論理クラスタリング (これはあなたが探しているものかもしれません)。
他のヒント
rabbitmq v2.6.0 現在、アクティブ/アクティブクラスタリングを使用して、高可用性キューをサポートしています。マイクロソフトと他の多くの企業が協力しています apache qpid C#バインディングがあり、アクティブ/アクティブHAクラスタリングもサポートしています。