Skip to Content
Quarkus クックブック
book

Quarkus クックブック

by Alex Soto Bueno, Jason Porter
May 2025
Intermediate to advanced
394 pages
5h 20m
Japanese
O'Reilly Media, Inc.
Book available
Content preview from Quarkus クックブック

第8章. フォールト・トレランス

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

この章では、マイクロサービスアーキテクチャで失敗を受け入れる必要がある理由を学ぶ。 このようなことが起こる理由の1つは、マイクロサービスアーキテクチャが機能するためにネットワークに大きく依存しており、ネットワークは常に利用できるとは限らない重要な部分だからだ(ネットワークのダウン、ワイヤの飽和、トポロジーの変更、下流サービスの更新など)。

このため、どのような種類の問題に対してもフォールトトレラントで、エラーをただ伝播させるのではなく、グレースフル・ソリューションを提供するサービスを構築することが重要である。

この章では、以下のタスクのレシピを紹介する:

  • さまざまなレジリエンス戦略を実装する

  • エラーが発生した場合のフォールバック・ロジックを用意する。

  • フォールトトレランスパラメータを正しく設定する

8.1 自動再試行の実装

問題

エラーが発生した場合、失敗からの回復を試みるために自動再試行を実行したい。

解決策

MicroProfile Fault Tolerance 仕様は、CDI Bean や MicroProfile REST Client を含む任意の CDI 要素に自動再試行を実装する方法を提供する。

障害から保護し、最悪の場合、障害の代わりにデフォルトのロジックを提供するために、いくつかの戦略を実装することができる。 例えば、読者の好みに応じて本を提案するサービスがあるとする。 このサービスがダウンした場合、障害の代わりに、ベストセラーの本のリストをキャッシュすることで、少なくとも障害を起こさずにリストを提供することができる。 つまり、フォールトトレランス戦略として定義する重要な部分の1つは、復旧が不可能な場合に実行するフォールバック・ロジックである。

MicroProfile Fault Toleranceは、コードをフォールトトレラントにするためのいくつかの戦略に焦点を当てている。 自動再試行を実行するという単純な最初の戦略を見てみよう。

MicroProfile Fault Tolerance 仕様を使用するための拡張機能を追加する必要がある:

./mvnw quarkus:add-extension -Dextensions="quarkus-smallrye-fault-tolerance"

ネットワーク障害から回復する最も簡単で、時に最も効果的な方法の1つは、同じ演算子を再試行することである。 断続的なエラーであれば、何度か再試行すればエラーは直るだろう。

@org.eclipse.microprofile.faulttolerance.Retry でアノテーションされたクラスやメソッドは、例外がスローされた場合に自動再試行を実行する。最大再試行回数、最大継続時間、ジッターなど、さまざまなparameters を設定したり、再試行が実行されるべき例外の種類を指定したりできる。

さらに、メソッドに@org.eclipse.microprofile.faulttolerance.Fallback のアノテーションを付けることで、フォールバック・ロジックを実装することができる。フォールバックとして実行するロジックは、org.eclipse.microprofile.faulttolerance.FallbackHandler インタフェースを実装したクラスとして実装することができる: ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Dataproc クックブック

Dataproc クックブック

Narasimha Sadineni, Anuyogam Venkataraman
OpenShiftの運用

OpenShiftの運用

Rick Rackow, Manuel Dewald
初めてのSQL 第3版

初めてのSQL 第3版

Alan Beaulieu, 株式会社クイープ

Publisher Resources

ISBN: 9798341650398Supplemental Content