0

タイトルが明確でない場合は申し訳ありませんが、このような短い文では問題を完全に説明できませんでした。

hystrix-javanica の使用を開始したばかりで、1 つの外部ネットワーク呼び出しの周りにサーキット ブレーカーがある場所で動作しています。

カバーしたい別のシナリオがありますが、最善のアプローチがよくわかりません。

私は、各クライアント要求が内部的に 5 つの連続した外部ネットワーク呼び出しを行う予約サービスを持っています。たとえば、最後の 5 回目の外部ネットワーク呼び出しですべてのクライアント リクエストが失敗した場合、回路を (どこかで) 切断し、5 つの外部ネットワーク呼び出しのいずれかにヒットするすべての要求を停止し、基本的に予約サービスを閉じたいと考えています。期間。

これがどのように実装されると思いますか?

ありがとう。

4

1 に答える 1

0

役立つかもしれない HystrixDemo の例を次に示します。

public void executeSimulatedUserRequestForOrderConfirmationAndCreditCardPayment() throws InterruptedException, ExecutionException {
    /* fetch user object with http cookies */
    UserAccount user = new GetUserAccountCommand(new HttpCookie("mockKey", "mockValueFromHttpRequest")).execute();

    /* fetch the payment information (asynchronously) for the user so the credit card payment can proceed */
    Future<PaymentInformation> paymentInformation = new GetPaymentInformationCommand(user).queue();

    /* fetch the order we're processing for the user */
    int orderIdFromRequestArgument = 13579;
    Order previouslySavedOrder = new GetOrderCommand(orderIdFromRequestArgument).execute();

    CreditCardCommand credit = new CreditCardCommand(previouslySavedOrder, paymentInformation.get(), new BigDecimal(123.45));
    credit.execute();
}

このメソッドには 5 つのコマンドがあり、そのうちのいくつかは相互に依存していますが、それらのいずれかが失敗した場合、メソッドは例外で終了します。

これが役立つことを願っています。

于 2016-03-28T16:39:16.390 に答える