ホームページ  >  記事  >  Java  >  インタビューのフィードバック Spring Cloud の 25 ショット シリーズ

インタビューのフィードバック Spring Cloud の 25 ショット シリーズ

Java后端技术全栈
Java后端技术全栈転載
2023-08-24 15:57:32846ブラウズ


まえがき

しばらく前、特別な理由により、インタビューが中断されました。さらに、たまたま先週、ある老人が面接に行って Spring Cloud について質問されました。そのフィードバックに基づいて、今日は Spring Cloud インタビュー シリーズを続けます。

皆さんフォロー歓迎です:

##Spring Cloud のコア知識の概要

次は Spring Cloud コア コンポーネントの関係図です:

インタビューのフィードバック Spring Cloud の 25 ショット シリーズ


##この写真からは実に多くの情報が得られますので、じっくり味わっていただければと思います。

以下は、

Spring Cloud Netflix

および Spring Cloud Alibaba のコアコンポーネントの概要です: <figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;display: flex;flex-direction: column;justify-content: center;align-items: center;"><p style="text-align: center;"><img src="https://img.php.cn/upload/article/001/273/727/84b463de133d0a90c542eef5f76e291b-1.png" alt="インタビューのフィードバック Spring Cloud の 25 ショット シリーズ" ></p></figure><p data-tool="mdnice编辑器" style="max-width:90%"># さっそく、Spring Cloud シリーズを直接始めてみましょう。 </p> <h2 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;border-bottom: 2px solid rgb(239, 112, 96);font-size: 1.3em;"> <span style="display: none;"></span><span style="display: inline-block;background: rgb(239, 112, 96);color: rgb(255, 255, 255);padding: 3px 10px 1px;border-top-right-radius: 3px;border-top-left-radius: 3px;margin-right: 3px;"> シリアルガンウォーキング </span><span style="display: inline-block;vertical-align: bottom;border-bottom: 36px solid #efebe9;border-right: 20px solid transparent;"> </span> </h2> <h3 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;font-size: 20px;"> <span style="display: none;"></span>#1. Spring Cloud とは何ですか? <span style="display: none;"></span> </h3> <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">Spring クラウド ストリーミング アプリケーション スターターは、外部システムとの統合を提供する Spring Boot に基づく Spring 統合アプリケーションです。 Spring Cloud Task は、限定されたデータ処理を実行するアプリケーションを迅速に構築するための短期間のマイクロサービス フレームワークです。 </p> <h3 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;font-size: 20px;"> <span style="display: none;"></span>2. マイクロサービスとは何ですか? <span style="display: none;"></span> </h3> <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">マイクロサービス アーキテクチャは、単一のアプリケーションを一連の小さなサービスに分割し、各サービスを独自の独立したプロセスで実行することを推奨するアーキテクチャ パターンまたはアーキテクチャ スタイルです。相互に連携し、ユーザーに究極の価値を提供します。サービスは、軽量の通信メカニズムを使用して相互に通信します (通常は HTTP ベースの RESTful API)。各サービスは特定のビジネスを中心に構築されており、運用環境や運用に似た環境などで独立して構築できます。さらに、統一的かつ集中的なサービス管理メカニズムは避けるべきであり、特定のサービスについては、ビジネスの状況に応じて適切な言語とツールを選択して構築する必要があり、非常に軽量な集中管理が可能です。 、さまざまな言語を使用してサービスを作成でき、さまざまなデータ ストアを使用できます。 </p> <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">平たく言うと: </p> <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">マイクロサービスは、単一の責任を持つ独立したサービス アプリケーションです。 intellij idea ツールには、maven を使用して開発された独立したモジュールがあり、具体的には、単一の専門的なビジネス ロジックを処理するために springboot を使用して開発された小さなモジュールであり、各モジュールは 1 つのことだけを実行します。 </p> <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"> マイクロサービスはサービスの規模を重視し、ある点に焦点を当てており、特定の問題/実装に対応するサービス アプリケーションをアイデアのモジュールとみなすことができます。 </p> <h3 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;font-size: 20px;"> <span style="display: none;">#3. Spring Cloud の利点は何ですか?</span><span style="display: none;"></span> </h3>Spring Boot を使用して分散マイクロサービスを開発する場合、次の問題に直面します<p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"></p> <ul class="list-paddingleft-2" data-tool="mdnice编辑器" style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;"> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">分散システムに伴う複雑さ - このオーバーヘッドには、ネットワークの問題、遅延オーバーヘッド、帯域幅の問題、セキュリティの問題が含まれます。 </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"> サービス ディスカバリ - サービス ディスカバリ ツールは、クラスタ内のプロセスとサービスがどのように相互に検索して通信するかを管理します。これには、サービス カタログが含まれ、そのカタログにサービスを登録し、そのカタログ内のサービスを見つけて接続できるようになります。 </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">冗長性 - 分散システムにおける冗長性の問題。 </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"> 負荷分散 -- 負荷分散により、コンピュータ、コンピュータ クラスタ、ネットワーク リンク、中央処理装置、ディスク ドライブなどの複数のコンピューティング リソースにわたるワークロードの分散が改善されます。 </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">パフォーマンスの問題 さまざまな運用上のオーバーヘッドによるパフォーマンスの問題。 </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">展開の複雑さ - Devops スキルの要件。 </section></li> </ul> <h3 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;font-size: 20px;"> <span style="display: none;"></span>4. マイクロサービスはどのように独立して通信しますか? <span style="display: none;"></span> </h3> <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">同期通信: dobbo は RPC リモート プロシージャ コール、springcloud 呼び出しを使用します。 RESTインターフェイスjson経由など。 </p> <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">非同期: メッセージ キュー (<code style='font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);'>RabbitMqActiveMKafka およびその他のメッセージ キューなど)。

5. サービスサーキットブレーカーとは何ですか?サービスのダウングレードとは何ですか?

サーキット ブレーカー メカニズムは、雪崩効果に対処するためのマイクロサービス リンク保護メカニズムです。特定のマイクロサービスが利用できない場合、または応答時間が長すぎる場合、サービスが低下するため、ノード上のマイクロサービスの呼び出しが中断され、すぐに「エラー」応答情報が返されます。ノードのマイクロサービス呼び出し応答が正常であることが検出されると、呼び出しリンクが復元されます。 Spring Cloud フレームワークでは、サーキット ブレーカー メカニズムは Hystrix を通じて実装されています。Hystrix はマイクロサービス間の呼び出しのステータスを監視します。失敗した呼び出しが特定のしきい値に達すると、デフォルトでは 5 秒以内に 20 件の呼び出しが行われます。失敗すると、サーキット ブレーカー メカニズムが機能します。が活性化されます。

サービスの低下は、通常、全体の負荷から考慮されます。つまり、サービスが切断されるとサーバーは呼び出されなくなりますが、このとき、クライアントはローカルのフォールバック コールバックを準備してデフォルト値を返すことができます。このように、レベルは低下しますが、まだ使用できるため、直接死ぬよりは優れています。

Hystrix関連ノート@EnableHystrix: サーキット ブレーカーをオンにします@HystrixCommand(fallbackMethod="XXX")、失敗ロールバック処理関数を宣言します XXX 、アノテーション付きメソッドの実行がタイムアウトすると (デフォルトは 1000 ミリ秒)、fallback 関数が実行され、エラー メッセージが返されます。

6. エウレカと飼育員の違いを教えてください。

Zookeeper は CP を保証し、Eureka は AP を保証します。

#A: 高可用性

C: 一貫性

P: パーティションフォールトトレランス

1. 登録センターに問い合わせるときリスト サービスの場合、登録センターが数分前の情報を返すことは許容できますが、直接ダウンして利用できないことは許容できません。つまり、サービス登録機能は高可用性に対する比較的高い要件を備えていますが、ZooKeeper では、マスター ノードがネットワーク障害により他のノードとの接続を失った場合、残りのノードがリーダーを再選出するという状況が発生します。問題は、リーダーの選択時間が 30 ~ 120 秒と長すぎることと、選択期間中に zk クラスターが利用できないため、選択期間中に登録サービスが麻痺することです。クラウド展開環境では、ネットワークの問題により zk クラスターがマスター ノードを失う可能性が高く、サービスは復元できますが、長い選択時間によって引き起こされる長期間の登録不可状態は耐えられません。

2. Eureka は可用性を保証します。各 Eureka ノードは同等です。複数のノードに障害が発生しても、通常のノードの動作には影響しません。残りのノードは引き続き登録およびクエリ サービスを提供できます。 Eureka クライアントが特定の Eureka を登録または検出するときに接続障害が発生した場合、自動的に他のノードに切り替わります。1 つの Eureka がまだ利用可能な限り、登録サービスは利用可能であることが保証されますが、見つかった情報は保証されない可能性があります。最新の。さらに、Eureka には自己保護メカニズムもあり、85% 以上のノードで 15 分以内に正常なハートビートが発生しない場合、Eureka はクライアントと登録センターの間でネットワーク障害が発生したと判断します。

①. Eureka は、長期間ハートビートを受信して​​いないために期限切れになるサービスを登録リストから削除しなくなりました。

②. Eureka は引き続き新しいサービスの登録およびクエリ要求を受け入れることができますが、他のノードと同期されません (つまり、現在のノードが引き続き利用可能であることが保証されます)

③. ネットワークが安定すると、現在のインスタンスの新規登録情報が他のノードに同期されます。

したがって、Eureka は、ネットワーク障害により一部のノードが接続を失った状況にうまく対処でき、Zookeeper のようにマイクロサービス全体を麻痺させることはありません。

#7、 SpringBootとSpringCloudの違いは何ですか?

SpringBoot は、個々のマイクロサービスを迅速かつ簡単に開発することに重点を置いています。

SpringCloud は、全体の状況に焦点を当てたマイクロサービス調整およびガバナンス フレームワークであり、SpringBoot によって開発された個々のマイクロサービスを統合して管理し、各マイクロサービスの構成管理を提供します。ブレーカー、ルーティング、マイクロ エージェント、イベント バス、グローバル ロック、意思決定選挙、分散セッション、その他の統合サービス

SpringBoot は開発プロジェクトで SpringCloud なしで独立して使用できますが、SpringCloud を SpringBoot から分離することはできません。

SpringBoot は個々のマイクロサービスの迅速かつ便利な開発に重点を置いているのに対し、SpringCloud はグローバルなサービス ガバナンス フレームワークに重点を置いています。

8. 負荷分散の意味は何ですか? コンピューティングでは、負荷分散により、コンピュータ、コンピュータ クラスタ、ネットワーク リンク、中央処理装置、ディスク ドライブなどの複数のコンピューティング リソースにわたるワークロードの分散が改善されます。負荷分散の目的は、リソースの使用量を最適化し、スループットを最大化し、応答時間を最小限に抑え、単一リソースの過負荷を回避することです。負荷分散に単一のコンポーネントではなく複数のコンポーネントを使用すると、冗長性によって信頼性と可用性が向上する可能性があります。通常、負荷分散には、マルチレイヤ スイッチやドメイン ネーム システム サーバー プロセスなどの特殊なソフトウェアまたはハードウェアが必要です。

9. ハイストリックスとは何ですか?耐障害性はどのように実現されるのでしょうか? Hystrix は、リモート システム、サービス、サードパーティ ライブラリへのアクセス ポイントを隔離し、連鎖的な障害を停止し、障害が避けられない場合に連鎖的な障害を停止するように設計されたレイテンシーおよびフォールト トレランスのライブラリです。複雑な分散システムにおける復元力。

通常、マイクロサービス アーキテクチャを使用して開発されたシステムには、多くのマイクロサービスが関与します。これらのマイクロサービスは相互に連携します。

次のマイクロサービスについて考えてください

インタビューのフィードバック Spring Cloud の 25 ショット シリーズ

上の図のマイクロサービス 9 が失敗した場合、従来の方法を使用すると仮定します。例外を伝播させます。しかし、それでもシステム全体がクラッシュしてしまいます。

マイクロサービスの数が増えると、この問題はさらに複雑になります。マイクロサービスの数は 1000 に達する可能性があります。ここで hystrix が登場します。この場合、Hystrix のフォールバック メソッド機能を使用します。従業員消費者によって公開されるサービスを使用する 2 つのサービス従業員消費者があります。

簡略化した図は次のとおりです。

インタビューのフィードバック Spring Cloud の 25 ショット シリーズ

次に、何らかの理由で、従業員プロデューサーによってサービスが公開されたと仮定します。例外が発生しました。この場合、Hystrix を使用してフォールバック メソッドを定義しました。このフォールバック メソッドは、パブリック サービスと同じ戻り値の型を持つ必要があります。公開されたサービスで例外が発生した場合、フォールバック メソッドは何らかの値を返します。

10. Hystrix サーキット ブレーカーとは何ですか?それは必要ですか?

何らかの理由で、従業員と消費者の公共サービスは例外をスローします。この場合、Hystrix を使用してフォールバック メソッドを定義します。公開されたサービスで例外が発生した場合、フォールバック メソッドは何らかのデフォルト値を返します。

インタビューのフィードバック Spring Cloud の 25 ショット シリーズ


#firstPage メソッド() で例外が発生し続けると、Hystrix 回路が破損し、従業員がまたは、 firtsPage メソッドを完全にスキップして、フォールバック メソッドを直接呼び出します。サーキット ブレーカーの目的は、最初のページ メソッド、または最初のページ メソッドが呼び出して例外回復を引き起こす可能性のある他のメソッドに時間を与えることです。負荷が軽いと、例外の原因となった問題が回復する可能性が高くなります。

インタビューのフィードバック Spring Cloud の 25 ショット シリーズ


#11. RPC の実装原理について話す

まず、ネットワーク接続通信を処理するモジュールがあり、接続の確立、管理、メッセージ送信を担当します。次に、ネットワーク通信はすべて送信されるバイトコードであり、使用するオブジェクトはシリアル化および逆シリアル化する必要があるため、コーディングおよびデコーディング モジュールが必要です。残りはクライアントとサーバーの部分です。サーバーは、開かれるサービス インターフェイスを公開します。クライアントは、サービス インターフェイスのプロキシ実装を呼び出します。このプロキシ実装は、データの収集、エンコード、サーバーへの送信を担当し、その後待機します。返される結果。

12. eureka の自己保護メカニズムとは何ですか?

Eureka Server ノードが、あるインスタンス内であまりにも多くのインスタンスの接続を失った場合短期間(ネットワーク障害やクライアントの頻繁な起動とシャットダウンなど)が発生すると、ノードは登録情報を保護するために自己保護モードに入り、登録データは削除されなくなります。障害が回復すると、自動的に削除されます。自己保護モードを終了します。

13. リボンとは何ですか?

ribbon は、http と tcp の一部の動作を適切に制御できる負荷分散クライアントです。 feign はデフォルトでリボン を統合します。

#14, Netflix フェイクとは何ですか?その利点は何ですか?

Feign は、Retrofit、JAXRS-2.0、および WebSocket からインスピレーションを得た Java クライアント バインダーです。

Feign の最初の目標は、安定性に関係なく、制約分母の複雑さを http API に統一することです。

機能:

  • Feign はインターフェイスベースの注釈を使用します
  • Feign はリボンを統合し、負荷分散機能を備えています
  • サーキットブレーカー機能を備えた統合型 Hystrix

使用方法

  • pom 依存関係を追加します。
  • クラスの追加を開始@EnableFeignClients
  • インターフェースを定義@FeignClient(name="xxx") 呼び出すサービスを指定してください

#15.Ribbon と Feign の違いは何ですか?

1. リボンは他のサービスを呼び出しますが、その方法は異なります。 2. スタートアップ クラスのアノテーションが異なります。リボンは @RibbonClient、フェインは @EnableFeignClients です。 3. サービスの指定場所が異なり、Ribbon は @RibbonClient アノテーションで宣言されているのに対し、Feign は抽象メソッドを定義するインターフェース内で @FeignClient を使用して宣言されています。 4. 呼び出し方法が異なるため、リボンは独自に http リクエストを構築し、http リクエストをシミュレートする必要があります。

16. Spring Cloud のコアコンポーネントは何ですか?

  • Eureka: サービスが Discovery に登録されました
  • Feign: 動的プロキシ メカニズムに基づいて、アノテーションと選択されたマシンに基づいて、リクエスト URL アドレスが結合され、リクエストが開始されます。
  • リボン: 負荷分散を実装し、サービス用に複数のマシンから 1 つを選択します。
  • Hystrix: スレッド プールを提供します。異なるサービスは異なるスレッド プールを使用するため、異なるサービス呼び出しの分離が実現され、サービス雪崩の問題が回避されます。
  • Zuul: ゲートウェイ管理。Zuul ゲートウェイはリクエストを対応するサービスに転送します。

17. Spring Boot と Spring Cloud の関係について話す

Spring Boot は、問題を解決するために Spring によって起動されます。単一のマイクロサービスを迅速に構築するように設計された、冗長フレームワーク構成ファイルと複雑なアセンブリ コンポーネントを備えた従来の Maven ベースのソリューション Spring Cloud は、さまざまなマイクロサービス間の調整と構成、サービス間の通信、サーキット ブレーカー、負荷分散などの解決に重点を置いています。 技術的な次元は同じではなく、Spring Cloud は Spring Boot に依存しますが、Spring Boot は Spring Cloud に依存せず、Dubbo との優れた統合開発も実行できます。

#SpringBoot は、個々のマイクロサービスの迅速かつ便利な開発に焦点を当てています。

  • SpringCloud は、全体的な状況に焦点を当て、各マイクロサービスを統合および管理し、提供するマイクロサービスの調整およびガバナンス フレームワークです。マイクロサービスごとにサービスを提供します。構成管理、サービス検出、サーキット ブレーカー、ルーティング、イベント バスなどの統合サービスを提供します。
  • Spring Boot は Spring Cloud に依存しません。Spring Cloud は依存します。関係
  • Spring Boot は個々のマイクロサービスを迅速かつ便利に開発することに重点を置いているのに対し、Spring Cloud はグローバルなサービス ガバナンス フレームワークに重点を置いています
  • ##18. マイクロサービスがどのように独立して通信するかについて話してください。

リモート プロシージャ呼び出し

は、サービスの登録と検出とよく呼ばれるものです。他のサービスに直接アクセスします。リモートプロシージャコール。 利点: シンプルで一般的。ミドルウェア プロキシがないため、システムがよりシンプルです。

欠点

: リクエスト/レスポンス モードのみをサポートします。通知、リクエスト/非同期応答、パブリッシュ/サブスクライブ、パブリッシュ/非同期応答などの他の機能をサポートしていない場合、リクエスト プロセス中にクライアントとサーバーの両方が利用可能である必要があるため、使いやすさが低下します。

メッセージ

サービス間通信には非同期メッセージを使用します。サービスは、メッセージ パイプを介してメッセージを交換することによって通信します。

利点: メッセージ ミドルウェアはコンシューマーがメッセージを利用できるようになるまでメッセージをキャッシュし、通知などの多くの通信メカニズムをサポートするため、クライアントとサーバーを分離し、結合を緩め、可用性を向上させます。リクエスト/非同期応答、パブリッシュ/サブスクライブ、パブリッシュ/非同期応答。

欠点: メッセージ ミドルウェアはさらに複雑になります。

19. Spring Cloud はサービス登録をどのように実装しますか?

サービスがリリースされたら、対応するサービス名を指定してサービスを登録します。登録センター (エウレカ、動物園飼育員)

@EnableEurekaServer を登録センターに追加し、サービスに @EnableDiscoveryClient を使用してから、リボンまたはふりを使用してサービスを直接呼び出して検出します。

この質問はより実践的です。面接の質問を覚えているかどうかに依存します。練習していない人にはわかりません。

20. サービスサーキットブレーカーとは何ですか?

複雑な分散システムでは、マイクロサービス間の相互呼び出しにより、さまざまな理由でサービスのブロックが発生する可能性があります。同時実行性の高いシナリオでは、サービスのブロックとはスレッドのブロックを意味し、現在のスレッドが利用できません。サーバーのすべてのスレッドがブロックされ、サーバーがクラッシュします。サービス間の呼び出し関係は同期であるため、マイクロサービス システム全体でサービス雪崩が発生します。

特定のマイクロサービスの呼び出し応答時間が長すぎる、または利用できないため、ますます多くのシステム リソースが消費され、雪崩現象が発生する場合は、サービス サーキット ブレーカーとサービス低下処理を実行する必要があります。

いわゆるサービスサーキットブレーカーは、特定のサービス障害または異常を指します。これは、ディスプレイの世界における「ヒューズ」に似ています。異常な状態がトリガーされると、代わりにサービス全体が直接切断されます。サービスがタイムアウトになるまで待機します。

サービスのヒューズは、電気スイッチのヒューズに相当します。サービスなだれが発生すると、サービス全体がヒューズになります。独自のスレッド プールを維持することで、スレッドがしきい値に達すると、サービスが低下します。他のリクエストがあった場合、アクセスを継続すると、デフォルト値のフォールバック

に直接戻ります。

21. エウレカの自己防衛メカニズムを理解していますか?

Eureka Server ノードが短期間に多数のインスタンスへの接続を失うと (ネットワーク障害やクライアントの頻繁な起動とシャットダウンなど)、ノードは自己保護モードに入ります。登録データは削除されなくなり、障害が復旧すると自己保護モードが自動的に解除されます。

22. Spring Cloud Bus についてご存知ですか?

Spring Cloud Bus は、分散ノードを軽量のメッセージ ブローカーと接続します。ブロードキャストに使用できます。構成ファイルの変更や直接サービス通信を監視するためにも使用できます。構成ファイルが変更され、リクエストが送信されると、すべてのクライアントが構成ファイルを再読み取りします。

23. Spring Cloud サーキット ブレーカーの機能は何ですか?

サービスが別のサービスを呼び出し、ネットワークに起因する問題が発生した場合理由または独自の理由により、呼び出し元は呼び出し先の応答を待ちます。これらのリソースへのサービス要求が増えると、さらに多くの要求が待機するようになり、連鎖効果 (雪崩効果) が発生します。一定時間内に一定回数呼び出しができず、監視を重ねても回復の兆しがない場合はブレーカーが全開となり、次回からはサービスを要求されなくなります。

ハーフオープン: 短期間で回復の兆候があります。サーキット ブレーカーはサービスにいくつかのリクエストを送信します。通常に呼び出される場合、サーキット ブレーカーは閉じられます。 Closed: サービスが常に正常な状態にあり、正常に呼び出すことができる場合。

24. Spring Cloud Config をご存知ですか?

分散システムでは、膨大な数のサービスがあるため、サービス構成ファイルの統合 管理とリアルタイム更新には、分散構成センター コンポーネントが必要です。 Spring Cloud には、分散構成センター コンポーネント Spring Cloud Config があり、構成サービスを構成サービスのメモリ (つまり、ローカル) に配置することをサポートし、また、構成サービスを構成サービスに配置することもサポートします。リモート Git リポジトリ。

Spring Cloud Config コンポーネントには 2 つのロールがあります。1 つは構成サーバーで、もう 1 つは構成クライアントです。 ######使用法:###

  • pom 依存関係を追加
  • 関連する設定を設定ファイルに追加
  • アノテーション @EnableConfigServer を起動クラスに追加

25. Spring Cloud Gateway についての理解を話してください

Spring Cloud Gateway は、Spring によって正式に開始された第 2 世代です。 Zuul ゲートウェイを置き換えるクラウド ゲートウェイ フレームワーク。トラフィック コントローラーとして、ゲートウェイはマイクロサービス システムにおいて非常に重要な役割を果たしており、ゲートウェイの一般的な機能には、ルーティングと転送、権限の検証、電流制限制御などが含まれます。

A RouteLocatorBuilder Bean は、ルートの作成に使用されます。ルートの作成に加えて、RouteLocatorBuilder を使用すると、さまざまな述語やフィルターを追加できます。述語アサーションの意味は、名前が示すとおり、特定のルートによって処理されることです。フィルターとは、リクエストに対してさまざまな判断や変更を行うために使用されるさまざまなフィルターです。

参考; http://1pgqu.cn/M0NZo

##概要

Spring Cloud Itは現在非常に人気があり、Java 開発者にとってほぼ必須のスキルの 1 つです。面接で聞かれるのは当たり前で、長く使ってきたものの原則を理解せずに面接に落ちてしまった人も多いのではないでしょうか。テスト問題を暗記することは、大きなレベルでは依然として非常に役立ちます。しかし、長期的な視点で見ると、皆さんにはより深いレベルで学び、実践してもらいたいと思っています。本当にマスターして初めてそれをNBと呼ぶことができます。

以上がインタビューのフィードバック Spring Cloud の 25 ショット シリーズの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はJava后端技术全栈で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。