サブスクライバに障害が発生した場合にEMSパブリッシャに通知する方法に関する回答を検索しようとしています。 パブリッシャー→EMSサーバー→サブスクライバーの場合、サブスクライバーが失敗した場合は、パブリッシャーに是正措置を取るよう通知する必要があります。耐久性/パーシステンスに関して気にならず、私の意義は時間です。トレーディングシステムでは、取引先にマーケット注文を送り、取引先に送ると、失敗した場合、別の話題のメッセージを別の取引先(別の取引所)にパブリッシャーで発行させる必要があります。 すべてのアイデアは高く評価されています。サブスクライバに障害が発生した場合にTIBCO EMS通知を発行者に送信する
答えて
アクセス権があるかどうかわからない場合は、QueueInfoまたはTopicInfoのReceiverCountまたはConsumerCountを調べてみてください。tibjms.adminパッケージが必要です。公開して選択的に公開する前にこれをクエリできますか?オーバーヘッドが何であるか分かりません。
JMSの性質上、AFAIKはトランザクションの状態を表しません(XAトランザクションを使用しない限り、そのすべてのオーバーヘッドで)、または肯定応答はEMSブローカを介して伝播します。私は常にパブリッシャーとブローカーと消費者とブローカーの間にあります。
上記に失敗した場合、役割が逆になっている別のackトピックを試すことができますが、失敗の場合はタイムアウトになります。これは分かりやすいとは思いません。
注文がどの交換に行くかは本当に気にしない - トピック/キューを排他的にして、両方の消費者が消費しようとしないようにする - 最初のものがすべてのメッセージを処理する - (定期的に再試行できますが、正常に接続できる可能性があります)。また、両方のキューに注文を処理させることもできます。メッセージは単一のコンシューマによってのみ処理されます...
本当に表示されません
tibjmsadmin.jarライブラリには、サブスクライバが切断されたときを検出するメソッドが含まれています。コードを書くよりも簡単、次のことができます。あなたがホークを持っている場合
- 、モニター 話題 に耳を傾け、加入者にイベントに 切断、または
- をホークルール を書くこと tibjmsadmin.hmaを使用します$ sys.monitor.connection.disconnect - メッセージの本文は、どのサブスクライバが切断されたかを に伝えます。
しかし、これらの「監視」方法では、パブリッシャの障害を検出してパブリッシャをリダイレクトする際に、重要な問題があります。メッセージが通過して機能しなくなることがありますキュー。あなたは$ 10Mの取引に起こってこれを見ないでください!
EMSは、加入者が接続されているかどうかを知っており、これを利用する必要があります。
"分散キュー"を使用すると、失敗したときに新しいサブスクライバに切り替えるためにロジックをアプリケーションにコーディングする必要はありません。これは、メッセージ損失なしで発生し、メッセージの順序を維持します。ロード・バランシングおよびフェイルオーバー・ロジックをコードおよびJMSプロバイダーの管理セットアップから保護することも、アーキテクチャーの習慣としては優れています。
基本的に、キューに複数のサブスクライバを設定します(各サブスクライバによって表されるエクスチェンジ)。デフォルトのアクションは、EMSがラウンドロビン方式でユーザにメッセージをロードバランシングすることです。しかし、キューを「排他的」に設定すると、メッセージは一度に1つのサブスクライバにのみ送信されます。そのアクティブなサブスクライバに障害が発生すると、メッセージは別のサブスクライバに転送されます。
これらのトピックの詳細については、EMSマニュアルを参照してください。
答えていただきありがとうございます.iは確かにドキュメントをチェックします。 –
- 1. psakeで障害が発生した場合のpostactionを実行するには?
- 2. 障害が発生した場合にオブザーバを再利用する方法は?
- 3. Redmine電子メール通知エラー「メールの送信中にエラーが発生しました(getaddrinfo:名前解決に一時的な障害が発生しました)」
- 4. Kubernetesマスターに障害が発生した場合はどうなりますか?
- 5. Parseクラウドデータサービスに障害が発生した場合はどうなりますか?
- 6. 障害が発生したが、障害が発生した時点からサイドキックを繰り返します。
- 7. クラスタモードで障害が発生した場合に2回スパーク送信を実行しないようにするにはどうすればよいですか?
- 8. apt-getの更新は浮浪者のマシンに障害が発生した
- 9. 点滅STM32F745に障害が発生したが、stlink-guiの
- 10. データボリュームのディスクボリュームに障害が発生しました
- 11. Oracle RACインスタンスに障害が発生しました。
- 12. パイプラインの左側に障害が発生しましたか?
- 13. HAプロキシのIPに障害が発生した場合にクライアントが接続を処理する方法
- 14. 目的に応じて障害が発生した場合にSQLでキャッチが失敗する
- 15. ffmpegは、1つの出力ストリームに障害が発生した場合に終了します。
- 16. Redis高可用性 - マスターノードに障害が発生した場合に同期を増やす
- 17. tableauのプライマリクラスタがダウンしているときに障害が発生した場合プライマリ
- 18. ペイロードデータを送信中にWebプッシュ通知エラー "MessageTooBig"が発生しました
- 19. docker-machine sshからVagrant VMに障害が発生する
- 20. 散発的な障害が発生する
- 21. ポストツイート/1.1/statuses/update.jsonに障害が発生した使用して、あなたに
- 22. TFSを使用するクローンリポジトリに障害が発生しました
- 23. JMXが通知を発行したときにjava.io.NotSerializableExceptionが発生しました
- 24. TIBCO EMS:複数の受信者の場合の優先度の設定
- 25. WSO2 GCM(GCM通知の送信中に例外が発生しました:ヌル)
- 26. 障害発生時に他のプロセスにフェイルオーバーするスーパーバイザのプロセス
- 27. 障害発生後にGWT-RPCリクエストを再起動する
- 28. レポートアイテムが重複してデータセット障害が発生する
- 29. エクセルVBAで働く障害が発生した細かい
- 30. クライアントサーバーの通信障害C#
お返事ありがとうございます。私はアイディアを持って私のチームと議論しなければならないでしょう。 –