2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Spring Cloud は、Spring Boot に基づくマイクロサービス アーキテクチャ ソリューションであり、マイクロサービスを構築および管理するための多くのツールとフレームワークが含まれています。インタビューでは、Spring Cloud に関連する質問は通常、その中核となる概念、コンポーネント、一般的なパターン、ソリューションについて取り上げられます。 Spring Cloud の面接中によくある質問とその回答をいくつか示します。
Spring Cloud には多くのコアコンポーネントが含まれており、一般的なコンポーネントは次のとおりです。
サービスの登録と検出はマイクロサービス アーキテクチャの重要な概念であり、サービス インスタンスの動的な登録と検出を指します。サービス登録センターは、サービス インスタンスのリストを維持する責任を負い、各マイクロサービスは開始時にそのアドレスとメタデータをサービス登録センターに登録します。
Spring Cloud で一般的に使用されるサービス登録および検出コンポーネントは、Netflix Eureka です。
サービスの登録と検出のプロセス:
サンプルコード:
Javaのコードをコピーする
@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
Javaのコードをコピーする
@EnableEurekaClient @SpringBootApplication public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
負荷分散は、リクエストを複数のサービス インスタンスに分散してシステムの可用性とパフォーマンスを向上させるテクノロジーです。 Spring Cloud は、主にリボンを通じて実装されるクライアント側の負荷分散ソリューションを提供します。
リボンの主な特徴:
サンプルコード:
Javaのコードをコピーする
@LoadBalanced @Bean public RestTemplate restTemplate() { return new RestTemplate(); }
サーキット ブレーカーは、サービス間の連鎖的な障害を防ぐために使用される保護メカニズムです。サービス インスタンスが利用できないことを検出すると、利用できないインスタンスの呼び出しを続行することを避けるために、エラー応答を直接返します。
Spring Cloud は Netflix Hystrix を使用してサーキット ブレーカーを実装します。
Hystrix の主な特徴:
サンプルコード:
Javaのコードをコピーする
@HystrixCommand(fallbackMethod = "fallbackMethod") public String someMethod() { // 可能会失败的服务调用 } public String fallbackMethod() { return "Fallback response"; }
API ゲートウェイは、マイクロサービス アーキテクチャの重要なコンポーネントであり、クライアント リクエストを均一に管理およびルーティングするために使用され、認証、電流制限、ロギングなどの機能を提供します。
Spring Cloud は、次の 2 つの API ゲートウェイ ソリューションを提供します。
Spring Cloud Gateway のサンプルコード:
yamlコードをコピー
spring: cloud: gateway: routes: - id: some_route uri: http://some-service predicates: - Path=/some-path/** filters: - StripPrefix=1
Spring Cloud Config は、複数のマイクロサービスの構成ファイルを一元管理するために使用される分散構成管理ツールであり、構成の動的更新をサポートします。
動作原理:
サンプルコード:
Javaのコードをコピーする
@EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
bootstrap.yml
):yamlコードをコピー
spring: application: name: some-service cloud: config: uri: http://localhost:8888
分散トレースは、複数のサービスにわたるリクエスト リンクを追跡するために使用され、開発者が分散システムを監視およびデバッグするのに役立ちます。
Spring Cloud Sleuth は、Zipkin または Yeter を統合する分散トレーシング ソリューションを提供します。
Spring Cloud Sleuth の主な機能:
サンプルコード:
xmlコードをコピーする