ホームページ >Java >&#&面接の質問 >マイクロサービスの面接に関する次の 9 つの質問のうち、いくつ答えることができますか?

マイクロサービスの面接に関する次の 9 つの質問のうち、いくつ答えることができますか?

Java后端技术全栈
Java后端技术全栈転載
2023-08-22 15:46:381547ブラウズ

現在、マイクロサービスは Java 開発者にとって必要なスキルの 1 つです。仕事で本当にマイクロサービス アーキテクチャを使用しているかどうかに関係なく、面接官は必ず質問するでしょう。そこで、Tian 兄弟は、マイクロサービスの面接での質問のリストを作成しました。

早速、本題に入りましょう。

1. マイクロサービスとは何ですか?

単一の軽量サービスは通常、別個のマイクロサービスです。マイクロサービスは特定の機能の実装に焦点を当てます。たとえば、ログイン システムはユーザー ログインのみに焦点を当てます。アスペクト関数の実現は、 が単一の責任を持ち、すぐに使用でき、独立して実行できることを強調します。マイクロサービス アーキテクチャ システムは、ビジネスに応じてサービス ユニット モジュールを分割し、単一システムの欠点を解決し、複雑化するビジネス ニーズに対応する分散システムです。 Martin Fowler: 現時点では、マイクロサービス業界に対する統一された標準の定義はありません。しかし、一般的に言えば、マイクロサービス アーキテクチャは、単一のアプリケーションを一連の小さなサービスに分割することを推奨するアーキテクチャ パターンまたはアーキテクチャ スタイルです。各サービスは独自のプロセスで実行され、サービス同士が連携・調整してユーザーに究極の価値を提供します。サービス間の軽量通信を使用します。各サービスは特定のビジネスを中心に構築されており、実稼働環境に個別にデプロイできます。さらに、統合され集中化されたサービス管理メカニズムは可能な限り避けるべきです。

平たく言えば:

マイクロサービスは、単一の責任を持つ独立したサービス アプリケーションです。 intellij idea ツールには、maven を使用して開発された独立したモジュールがあり、具体的には、単一の専門的なビジネス ロジックを処理するために springboot を使用して開発された小さなモジュールであり、各モジュールは 1 つのことだけを実行します。

マイクロサービスは、サービスのサイズを強調し、特定の点に焦点を当て、具体的には特定の問題を解決したり、対応するサービス アプリケーションを実装したりします。これはアイデアのモジュールとみなすことができます。

たとえば、歯に違和感を感じて病院に行く場合、歯医者に行きます。頭が痛ければ脳科に行きます。各部門はマイクロサービスであり、各機能はサービスです。

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

同期通信: RPC リモート プロシージャ コール経由の dobbo、REST インターフェイス json コール 経由の springcloud など。非同期: メッセージ キュー (RabbitMq、ActiveM、Kafka など)。

3. SpringCloud と Dubbo の違いは何ですか?

  • #まず第一に、これらはすべて 分散管理フレームワーク です。

  • ダボは バイナリ送信であり、占有帯域幅が少なくなります。 SpringCloud は http 送信 を使用しており、帯域幅はもう少し多くなります。http プロトコルを使用する場合、通常は JSON メッセージ を使用するため、消費量が多くなります。

  • Dubbo 開発は難しく、依存する jar パッケージには多くの問題があります。大規模なプロジェクトは解決できません。 SpringCloud のサードパーティの継承は ワンクリックで生成でき、自然に統合されます

  • SpringCloud インターフェイス プロトコルの合意は比較的緩いため、無秩序なインターフェイスのアップグレードを制限するには強力な管理措置が必要です

  • 最大の違い:

    Spring Cloud は、Dubbo の RPC 通信を放棄し、HTTP ベースの REST メソッドを採用します。

  • 厳密に言えば、これら 2 つの方法にはそれぞれ長所と短所があります。後者はサービス呼び出しのパフォーマンスをある程度犠牲にしますが、前述のネイティブ RPC によって引き起こされる問題も回避します。さらに、REST は RPC に比べて柔軟性が高く、サービスプロバイダーと呼び出し元は紙の契約のみに依存し、コードレベルでの強い依存関係がないため、急速な進化を重視するマイクロサービス環境に適しています。

マイクロサービスの面接に関する次の 9 つの質問のうち、いくつ答えることができますか?
SpringCloud と Dubbo.png

4. SpringBoot と SpringCloud の関係は?

  • SpringBoot: 単一の個別のマイクロサービスを 迅速かつ便利に開発することに焦点を当てます (マイクロに焦点を当てます); SpringCloud: グローバルなマイクロサービスの調整とガバナンス SpringBoot が開発した個々のマイクロサービスを組み合わせて管理するフレームワーク (マクロを中心);

  • SpringBoot は SpringCloud から独立して使用できますが、SpringCloud SpringBoot から離れることはできず、依存関係となっています。

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

  • サービスヒューズの機能は家庭用ヒューズと同様で、サービスが利用できなくなったり、応答がタイムアウトになったりしたときに、システム全体の雪崩を防ぐために使用されます。 、サービスへの通話を一時的に停止します。

  • サービスの低下はシステム全体の負荷状況に基づいて考慮されており、負荷が比較的高くなる一部の状況では、特定の機能(ビジネス)を妨げるため、過負荷または応答が遅い場合、一部の非コアインターフェイスおよびデータに対するリクエストを内部で一時的に破棄し、事前に用意されたフォールバックエラー処理情報を直接返します。このようにして、損失の多いサービスが提供されますが、システム全体の安定性と可用性が保証されます。

# 6. マイクロサービスの長所と短所は何ですか?プロジェクトで遭遇した落とし穴について教えてください。

  • 利点: 疎結合、単一のビジネス機能に焦点を当て、開発言語に依存しないため、チームの規模が縮小されます。開発中は、ビジネスについてあまり知る必要はなく、便利で集中化され、小さく洗練された現在の機能に集中するだけで済みます。マイクロサービスの 1 つの機能が破損しても、他の機能には大きな影響を与えず、問題をすぐに特定できます。マイクロサービスは現在のビジネス ロジック コードのみに焦点を当てており、html、css、またはその他のインターフェイスと混合されません。テクノロジーに合わせて柔軟に対応できるし、独立したほうが気楽です。

  • 欠点: サービスの数が増えると、管理が複雑になり、展開が複雑になり、サーバー要件が増加し、サービス通信と通話の負担が増加し、運用とメンテナンスが増加します。エンジニアへのプレッシャーが増大し、人的資源が増加し、システム依存性、データの一貫性、パフォーマンスの監視が強化されています。

7. エウレカと動物園の飼育員の違いは何ですか?

zookeeper は、CP 原則、強整合性、およびパーティション フォールト トレランスに基づいています。 eureka は AP の原則 可用性とパーティション許容度 です。マスター ノードに障害が発生すると、ZooKeeper は残りのノードからマスター ノードを再選択しますが、時間がかかりすぎます。最終的には復元できますが、マスター ノードを選択するとサービスが使用できなくなります。耐えられない。 eureka 内のすべてのノードは同等です。 1 つのノードがハングアップしても、他のノードは通常のサービスを維持します。

#8. マイクロサービスについてどのようなテクノロジー スタックを知っていますか? 1 つか 2 つ挙げてください。

##マイクロサービスエントリー実装技術 サービス開発SpringBoot、Spring、SpringMVCサービスの構成と管理NetfixのArchaius、AlibabaのDlamondなどサービスの登録と検出Eurka、Consul、Zookeeper などサービス呼び出しRest (サービス通信)、RPC (ダボ)、GRpc#メッセージ キューKafka、RabbitMQ 、ActiveMQ などサービス構成センター管理SpringCloudConfig、Chef などサービス ルーティング (API ゲートウェイ) )Zuul など サービス監視Zabbix、Nagios、メトリクス、Spectator など
サービスサーキットブレーカー Hystrix、Envoyなど
負荷分散 Nginx、Ribbonなど
サービス インターフェイス呼び出し (クライアント簡易ツール) Fegin など
フルリンクトラッキング Zipkin、Brave、Dapperなど
サービスデプロイメント Docker、OpenStack、Kubernetesなど.
データ フロー操作開発パッケージ SpringCloud Stream (メッセージを送受信するために Redis、Rabbit、kafka などでカプセル化されています)
イベント メッセージ バス Spring Cloud Bus

9. マイクロサービス アーキテクチャとは何ですか?

マイクロサービスとは何かを以前に理解していれば、基本的にはすでにマイクロサービス アーキテクチャを理解していることになります。

マイクロサービス アーキテクチャは、マイクロサービスを管理、統合、適用することです。マイクロサービス アーキテクチャはマイクロサービスに依存しており、マイクロサービスに基づいています。

例: マイクロサービスとは何かについては上にリストされています。病院では、各部門が独立したマイクロサービスであるため、院長が次の部門を管理できるのと同じように、病院は大規模なマイクロサービス アーキテクチャです。マイクロサービスアーキテクチャでは主にこの機能を持っています。

以上がマイクロサービスの面接に関する次の 9 つの質問のうち、いくつ答えることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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