インターネットの急速な発展に伴い、高同時実行性、高可用性、高パフォーマンスをサポートする必要がある企業がますます増えており、従来のモノリシック アーキテクチャやデータベース ストレージ方法に新たな課題が生じています。マイクロサービス アーキテクチャは、システムを複数の独立した小さなサービスに分割することで、分散環境における従来のモノリシック アーキテクチャが直面する多くの問題を解決します。
マイクロサービス アーキテクチャでは、各機能単位は独立したサービスであり、サービスはさまざまな方法で相互に呼び出します。サービス間の例外や障害などの問題に直面することは避けられません。この状況に対応するには、サービスの中断や機能低下を含め、システムの可用性と安定性を確保するためのいくつかのメカニズムを導入する必要があります。
サービス サーキット ブレーカーは一般的なフォールト トレランス メカニズムです。サービスのエラー率が特定のしきい値を超えると、サーキット ブレーカーが開き、サービス間の相互呼び出しが切断されます。 、プリセットされたデフォルトの応答を返します。
回路は、異常な状況に短時間で効果的に対処し、誤った応答が上流システムに送信されることを防ぎ、上流システムと下流システムが相互に足を引っ張ることを回避し、システム全体の可用性を向上させます。一般に、サービスサーキットブレーカーは、Spring Cloud に付属する Hystrix を通じて実現できます。
Hystrix を使用する手順:
1.Hystrix 依存関係を導入する
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>
2.メイン クラスに @EnableCircuitBreaker アノテーションを追加します
@SpringBootApplication @EnableDiscoveryClient @EnableCircuitBreaker public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
3.使用します@ HystrixCommand アノテーションはサービス低下とサーキット ブレーカーを処理します
@HystrixCommand(fallbackMethod = "defaultProcess") public String process(String data) { // 服务调用 } public String defaultProcess(String data) { // 熔断和降级处理 }
サービス サーキット ブレーカーのデフォルトの応答は実際のビジネス シナリオと一致しない可能性があるため、サービス低下メカニズムも導入する必要があります。サービスが異常またはサーキットブレーカーの場合、例外をスローしたりエラー結果を返す代わりに、あらかじめ設定されたデフォルトの応答を返します。
サービスがダウングレードされる場合、実際のビジネス ニーズに基づいて、対応する処理戦略を策定する必要があります。たとえば、サービスがダウングレードされるときにキャッシュされたデータ、デフォルト値、例外プロンプトなどを返すことで、ユーザーへの影響を最小限に抑えることができます。
Spring Cloud を使用してサービスのダウングレードを実装する手順は、サービス サーキット ブレーカーと似ています。サービスの低下を実装するには、リソース クラスで @HystrixCommand アノテーションを使用し、fallbackMethod 属性に対応するメソッドを指定する必要があります。
@HystrixCommand(fallbackMethod = "defaultGetData") public String getData(String id) { // 服务调用 } public String defaultGetData(String id) { // 服务降级处理 }
つまり、マイクロサービス アーキテクチャでは、サーキット ブレーカーとダウングレード メカニズムは非常に重要なフォールト トレランス メカニズムであり、Spring Cloud はこのメカニズムをサポートする Hystrix を提供します。サービスの障害や異常が発生した場合は、サーキット ブレーカーやダウングレード処理を適時に実行して障害の拡大を回避し、システムの可用性と堅牢性を確保する必要があります。
以上がSpring Cloud マイクロサービス アーキテクチャでのサービス サーキット ブレーカーとダウングレードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。