1

How can I define a failover spring integration gateway?で尋ねられた質問と同様に フェイルオーバー機能を実装する必要がありますが、期待は異なります。

プライマリとセカンダリの 2​​ つのブローカーと、同じサーバー上で PRIMARY モードまたは BACKUP モードで実行されている 1 つのサービスです。内部データの同期は、SYNC キューを使用して実行されます。

サービス内で、Spring Integration を使用して次の機能を実装したいと考えています。

  • 各 1Q、2Q、3Q、...、5Q キューには受信側があり、1SQ キューには送信側があります。受信者と送信者の両方がプライマリ ブローカーで動作します (送信者にはメッセージ ゲートウェイとルーターを使用し、受信者にはサービス アクティベーターを使用して Spring で既に実装されています)。

  • 1Q-5Q からのメッセージが受信されると、新しいメッセージが 1SQ に送信されます (これは既に機能しています)。同時に、内部データの更新が SYNC キューに送信されます。このようにして、フェイルオーバーの場合に内部データ構造が同期されます。

  • 外部モジュールは、プライマリ ブローカの追加の KeepAlive メッセージの 1Q キューに送信します。メッセージが N 秒後に受信されない場合。セカンダリ ブローカーで動作する新しいレシーバーとセンダーを起動する必要があります。このようにして、受信者/送信者はプライマリ ブローカーの機能を引き継ぎます。

質問:

明らかにラウンドロビン戦略は適切ではありません。また、問題のようにセカンダリ サーバーを自動的に選択 する方法はありません。これが、プライマリ ブローカがダウンしているかどうかを検出するために keepAlive メッセージが選択された理由です。Spring Integration でこの機能を使用することは可能ですか? より正確には:

  1. キープアライブ メッセージがプライマリ サーバーによって受信されない場合、送信者/受信者のプライマリ サーバーとセカンダリ サーバー間の切り替えを実装する方法は?
  2. 稼働中のプライマリ サーバーに戻すことはできますか?
4

0 に答える 0