問題タブ [circuit-breaker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
179 参照

nservicebus - NServiceBus 4.x TimeoutPersisterReceiver サーキット ブレーカーを増やす方法

NServicebus 4.x の TimeoutPersisterReceiver のタイムスパンを増やすにはどうすればよいですか?

コンテナーから TimeoutPersisterReceiver オブジェクトを取得し、SecondsToSleepBetweenPolls 値を変更するにはどうすればよいでしょうか? 投票数のプロパティはありますか?

以下のリンクは専用であり、専用では5.xあり6.xません4.x: http://docs.particular.net/nservicebus/errors/critical-exception-for-timeout-outages

編集: こんにちはマルシン、ありがとう。あなたが提供したリンクを調べました: How to configure TimeoutPersisterReceiver.SecondsToSleepBetweenPolls

NServicebus は 5.x では修正を行いましたが、4.x では修正を行いませんでした。@JustABitOfCode は、TimeoutPersisterReceiver の構成について言及しました。しかし、コンテナからそのインスタンスを取得して設定する方法に関するリンクが見つかりませんでした。また、私の質問は、サーキットブレーカーが行うポーリングの数を制御する方法はありますか?

そして、私が述べたように、私は当分の間 4.x に悩まされました。どんな助けでも大歓迎です。

0 投票する
1 に答える
6085 参照

c# - Polly サーキット ブレーカー パターン - 接続文字列のテスト用

Polly を使用して接続文字列が null かどうかをテストしようとしています。null の場合、CircuitBreaker を使用して 3 回試行し、コンソール ウィンドウにメッセージが出力されるはずです。

GetConnectionString メソッドは次のとおりです。

これをテストするために、App.config で接続文字列名を変更しました。

ただし、NullReference Exception を処理していないようです。

アプリケーションをデバッグすると、CircuitBreakerEngine.cs が見つからず、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」のみが表示されます。

予想される : オブジェクト参照がオブジェクトのインスタンスに設定されていないことを 3 回出力し、壊れた回路の例外からメッセージを出力する

0 投票する
2 に答える
12565 参照

c# - Polly フレームワーク CircuitBreakerAsync は、例外が発生した場合に再試行しません

一時的な障害処理に Polly フレームワークを使用しています。同期操作の場合、Polly サーキット ブレーカー ポリシーは正常に機能しますが、非同期バージョンを作成すると、実行が再試行されません。親切に提案:

非同期方式:

Polly サーキット ブレーカーの非同期ポリシー:

Polly サーキット ブレーカー ポリシーの実行:

AsyncDemo3(HelloWorld);

問題を見つけて解決するのを手伝ってください。

0 投票する
2 に答える
4609 参照

java - Hystrix サーキット ブレーカーのタイムアウトを増やしますか?

Hystrix Circuit Breaker を実装していますが、テスト中に Hystrix ランタイム例外が発生し、The CircuitBreker がタイムアウトしてフォールバックに失敗したというエラーが表示されます。CircutBreaker のタイムアウトを増やす必要がありますか? コードがタイムアウトした場合、サーキット ブレーカーをトリップする必要がありますか?

私のjunitテストは次のとおりです。

私のクラスは、何らかの障害が発生した場合に CircuitBreaker を使用して web get/puts/etc を実行するだけです。私のクラスは次のとおりです。

0 投票する
0 に答える
1510 参照

spring-boot - ダウンストリーム サービスが回復した後、Hystrix 回線が閉じない

Josh Long によるbootiful-microservice プロジェクトで遊んでいます。(ブリクストンサブプロジェクト)

予約サービスでは、負荷をシミュレートするために構成可能な時間だけスリープできる単純なステータス メソッドを追加しました。

sleepTime変数は Spring Config Server からプルされます

予約クライアントで、ゲートウェイにエントリ ポイントを追加しました。

そして私はHystrixCommand

これはすべてうまくいきます。

一部のリクエストが Hystrix のデフォルトのしきい値 (1000 ミリ秒) を超えるように、スリープ時間を 1500 ミリ秒に設定しました。

API にアクセスし始めると、タイムアウトが原因でいくつかのエラーが発生します。私が十分に長く打つと(50回はうまくいくようです)、サーキットブレーカーがトリガーされ、サーキットが開きます:

Hystrix ダッシュボード

私の理解では、ダウンストリーム サービスが再び正常になると、Hystrix は 1 つの呼び出しをルーティングし、それをヘルス チェックとして使用しようとします。呼び出しが成功した場合、回線は再び閉じられる必要があります。

しかし、これはここでは起こっていません。スリープ時間をより小さな値 (500ms としましょう) に変更した後でも、回路は開いたままになります。私の呼び出しは予約サービスにルーティングされず、すべての呼び出しでフォールバックが使用されます。回線を再び閉じる唯一の方法は、予約クライアント サービスを再起動することです。

私は何か見落としてますか?Hystrixの問題ですか?または、Spring Integration を使用しますか?


アップデート

さらにテストを行ったところ、スリープが減少した後でも回路が永久に閉じたままになることが確認できました。

ただし、Zuul 構成でルートを使用すると、期待どおりの動作が得られます。タイムアウトしない要求を検出すると、回路は閉じます。

Spring で手動で行う場合と比較して、ルートによる転送の別の違いに気付きました。フィルターを作成すると、クライアントで /status/ を呼び出してもフィルターがトリガーされません。ルートをセットアップすると (例: /foos/status => /status)、フィルターがトリガーされ、Hystrix が適切に動作します。

それはSpringのバグですか?

0 投票する
1 に答える
885 参照

spring-cloud - サーキット ブレーカーを使用した春のクラウド ズール スタティック ルート

他のマイクロ サービスへの静的ルートを使用して Zuul を構成しました。他のサービスを呼び出すときに CircuitBreaker を有効にする方法はありますか?