【Java Advanced Camp】マイクロサービスインタビュー

1. マイクロサービスとは何ですか?
現時点では、マイクロサービス業界の統一された標準定義はありません。

しかし、一般的に言えば、マイクロサービス アーキテクチャは、単一のアプリケーションを小さなサービスのグループに分割し、それぞれが独自の独立したプロセスで実行され、サービス間で相互に調整および協力してユーザーにサービスを提供することを提唱するアーキテクチャ パターンまたはアーキテクチャ スタイルです。最も合計値が高いもの。サービスは、軽量の通信メカニズム (通常は HTTP ベースの RESTful API) を使用して相互に通信します。各サービスは特定のビジネスを中心に構築されており、運用環境または運用に似た環境で独立して構築できます。また、統一的かつ集中的なサービス管理メカニズムは避けるべきであり、特定のサービスについては、ビジネスの状況に応じて適切な言語とツールを選択して構築する必要があります。これらのサービスを調整するには、非常に軽量な集中管理を使用できます。サービスはさまざまな言語で記述したり、さまざまなデータ ストアを使用したりできます。

2. マイクロサービスはどのようにして独立して通信しますか?

3. SpringCloud と Dubbo の違いは何ですか?
ここに画像の説明を挿入

最大の違いは、SpringCloud では Dubbo の RPC 通信を放棄し、HTTP ベースの REST 方式を採用していることです。
全体として、どちらにも独自の利点があります。後者のサービスは関数を呼び出しますが、前述のネイティブ RPC によって引き起こされる問題も回避します。さらに、REST は RPC よりも柔軟性があり、サービスプロバイダーと呼び出し元は紙の契約のみに依存し、コードレベルの依存関係がないため、急速な進化を重視するマイクロサービス環境に適しています。
ブランドマシンとアセンブリマシンの違い: SpringCloud が dubbo よりも強力で、カバー範囲が広く、SpringFramework、SpringBoot、SpringData、SpringBatch などの他の Spring プロジェクトと完全に統合できることは明らかです。これらは重要です。マイクロサービス向け。Dubbo で構築されるマイクロサービス アーキテクチャは、コンピュータを組み立てるようなもので、各リンクの選択の自由度は高いですが、最終的にはメモリの品質によって全体に影響を与える可能性がありますが、専門家にとっては問題ありません。SpringCloud はブランドマシンのようなもので、Spring Source の統合の下で、マシンの安定性を高めるために多くの互換性テストが行​​われています。
マイクロサービス インフラストラクチャ フレームワークの選択に直面した場合、Dubbo と SpringCloud は 2 つのうちの 1 つしか選択できません。

4. SpringBoot と SpringCloud について、あなたの理解について話してください。
1)、SpringBoot は、個々のマイクロサービスの迅速かつ便利な開発に焦点を当てています。
2)、SpringCloud は、グローバルなマイクロサービスの調整、組織、ガバナンスに焦点を当てたフレームワークであり、SpringBoot によって開発されたモノマーを統合および管理します。
3)、SpringBoot は開発プロジェクトを独立して使用するために SpringCloud を離れることができますが、SpringCloud は依存関係である SpringBoot なしでは実行できません。

5. サービスサーキットブレーカーとは何ですか? サービスの低下とは何ですか?
ヒューズ メカニズムは、アバランシェ効果に対処するためのマイクロサービス リンク保護メカニズムです。ファンアウト リンクのマイクロサービスが利用できない場合、または応答時間が長すぎる場合、サービスが低下し、ノードのマイクロサービスの呼び出しが切断され、すぐに「エラー」応答メッセージが返されます。ノードのマイクロサービス呼び出し応答が正常であることが検出されると、呼び出しリンクが再開されます。SpringCloud フレームワークでは、ヒューズ メカニズムは Hystrix によって実装されています。Hystrix はマイクロサービス間の呼び出しのステータスを監視します。失敗した呼び出しが特定のしきい値に達すると、デフォルトでは 5 秒以内に 20 件の呼び出しが行われます。失敗した場合、ヒューズ メカニズムは次のようになります。活性化された。ヒューズ メカニズムのアノテーションは @HystrixCommand
サービスの低下であり、これは一般に全体の負荷から考慮されます。つまり、サービスが壊れるとサーバーは呼び出されなくなりますが、このとき、クライアントはローカルのフォールバック コールバックを準備してデフォルト値を返すことができます。このように、レベルは下がっていますが、それでも使用できるので、直接電話を切るよりは優れています。

6. マイクロサービスの長所と短所は何ですか? プロジェクト開発で遭遇した問題について教えてください。
利点: 1) 各サービスは十分にまとまっており、十分に小さく、コードが理解しやすいため、特定のビジネス機能またはビジネス要件に焦点を当てることができます。
2) 開発が簡単で開発効率が向上する サービスは一つのことに専念することもあります。
3) マイクロサービスは、2 ~ 5 人の開発者で構成される小規模チームで開発できます。
4) マイクロサービスは、開発フェーズとデプロイメントフェーズの両方で独立した、疎結合で機能的に意味のあるサービスです。
5) マイクロサービスはさまざまな言語で開発できます。
6) サードパーティとの統合が容易なマイクロサービスにより、Jenkins、Hudson などの継続的統合統合ツールを通じて、自動デプロイメントを簡単かつ柔軟に統合できます。
7) マイクロサービスは開発者による理解、変更、保守が容易であるため、小規模なチームは自分たちの作業結果により注意を払うことができます。協力によって価値を示す必要はありません。
8) マイクロサービスにより、最新のテクノロジーを組み込むことができます。
9) マイクロサービス知識のビジネス ロジック コードは、HTML や CSS、その他のインターフェイス コンポーネントと混在しません。
10) 各マイクロサービスには独自のストレージ容量があり、独自のデータベースまたは統合データベースを持つことができます。
欠点: 1) 開発者は分散システムの複雑さに対処しなければなりません。
2) 複数のサービスを運用・保守するのが大変 サービスの増加に伴い、運用・保守のプレッシャーも増しています。
3) システム展開の依存関係。
4) サービス間の通信コスト。
5)、データの一貫性。
6)、システム統合テスト。
7)、パフォーマンス監視...

7. どのようなマイクロサービス テクノロジ スタックを知っていますか? 1 つまたは 2 つの例を教えてください。
マイクロサービス テクノロジ スタック (さまざまな機能を実装するために使用されるテクノロジ) は次のとおりです。
ここに画像の説明を挿入

8. Eureka と Zookeeper は両方ともサービスの登録と検出機能を提供できますが、2 つの違いについて教えてください。
1)、Zookeeper は CP (C: 一貫性、P: パーティション フォールト トレランス) を保証、Eureka は AP (A: 高可用性) を保証します (
1)、レジストリからサービス リストをクエリする場合、レジストリから返される情報を許容できます。は数分前の情報ですが、直接ダウンして利用できないことは許容できません。つまり、サービス登録機能は高可用性に対する比較的高い要件を持っていますが、zk では、ネットワーク障害によりマスター ノードが他のノードとの接続を失った場合、残りのノードがリーダーを再選出するという状況が発生します。問題は、リーダーの選択に 30 ~ 120 秒と時間がかかりすぎることと、選択期間中は zk クラスターが利用できないため、選択期間中に登録サービスが麻痺することです。クラウド展開環境では、ネットワークの問題により zk クラスターがマスター ノードを失う可能性が高く、サービスは復元できますが、選択時間が長いために登録が長期間利用できないことは許容できません。
(2) Eureka は可用性を保証します。Eureka の各ノードは同等です。いくつかのノードがハングアップしても、通常のノードの動作には影響しません。残りのノードは引き続き登録およびクエリ サービスを提供できます。ただし、Eureka のクライアントが特定の Eureka に登録する場合、または接続障害が発生した場合は、自動的に他のノードに切り替わります。1 つの Eureka が存在する限り、登録サービスは利用可能であることが保証されますが、見つかった情報は失われる可能性があります。最新ではありません。さらに、Eureka には自己保護メカニズムもあり、85% 以上のノードで 15 分以内に正常なハートビートが発生しない場合、Eureka はクライアントと登録センターの間でネットワーク障害が発生したと判断します。
①. Eureka は、長期間ハートビートを受信して​​いないために期限切れになるはずのサービスを登録リストから削除しません
②、Eureka は引き続き新しいサービスの登録およびクエリ要求を受け入れることができますが、他のノードと同期されません (つまり、現在のノードが引き続き利用可能であることを確認するため)

       ③、当网络稳定时,当前实例新的注册信息会被同步到其他节点。

したがって、Eureka は、Zookeeper のようにマイクロサービス全体を麻痺させるのではなく、ネットワーク障害により一部のノードが接続を失った状況にうまく対処できます。
下の名刺をクリックすると情報がご覧いただけます

Supongo que te gusta

Origin blog.csdn.net/m0_54861649/article/details/126605372
Recomendado
Clasificación