ActiveMQフェイルオーバーを使用しています。例:
failover:(tcp://host1:61616,tcp://host2:61616)
host1もhost2も利用できない場合にアラートを出したいのですが。
アプリケーションがすでにブローカーに接続している場合は、TransportListenerを介していつフェイルオーバーするかを検出できます。初期接続時には同じことはできません。ハングし、各ブローカーを繰り返し再試行します。これは、接続を継続して試行するという点で望ましい動作ですが、問題が発生していることも通知して、アラートを出したり、誰かが調べたりできるようにしたいのです。
1つの解決策は使用することです
failover:(tcp://host1:61616,tcp://host2:61616)?startupMaxReconnectAttempts=1
これは、各ホストを試行してから例外をスローすることを意味します。これは、アプリケーションがアラートを出してから再接続を試みることで処理できます。私のアプリケーションはActiveMQ再接続ロジックを効果的に複製する必要があるため、これは理想的ではありません。
初期接続時にブローカーの問題を検出するためのより良い方法はありますか?