1. jpa と Hibernate の違いは何ですか?
(推奨される調査: java 面接の質問 )
JPA Java Persistence API は Java EE 5 の標準 ORM インターフェイスであり、 ejb3 仕様の一部。
今日非常に人気のある ORM フレームワークである Hibernate は JPA の実装ですが、その機能は JPA のスーパーセットです。
JPA と Hibernate の関係は、JPA が標準インターフェースであり、Hibernate が実装であると単純に理解できます。では、Hibernate はどのようにして JPA とこの関係を実現するのでしょうか? Hibernate は主に、hibernate-annotation、hibernate-entitymanager、hibernate-core の 3 つのコンポーネントを通じて実装されます。
hibernate-annotation は、Hibernate がアノテーション設定をサポートするための基盤であり、標準の JPA アノテーションと Hibernate 独自の特殊関数のアノテーションが含まれています。
hibernate-core は Hibernate のコア実装であり、Hibernate のすべてのコア機能を提供します。
hibernate-entitymanager は標準 JPA を実装します。これは、hibernate-core と JPA の間のアダプターとみなすことができます。ORM 機能を直接提供しませんが、hibernate をサポートします。コアは次のようにカプセル化されています。 Hibernate を JPA 仕様に準拠させます。
#2. 春雲とは何ですか?
文字通り理解すると、Spring Cloud は分散システムとクラウド サービス専用のフレームワークです。
Spring Cloud は Spring ファミリー全体の新しいメンバーであり、最近のクラウド サービスの人気の必然の製品です。
Spring Cloud は、分散システムでいくつかの一般的なパターンを迅速に構築するためのツールを開発者に提供します。
構成管理
サービスの登録と検出
サーキットブレーカー
インテリジェント ルーティング
サービス間呼び出し
#ワンタイムトークン
グローバルロック
リーダーシップ選挙
分散セッション
##Spring Cloud を使用すると、開発者はすぐにこれらのパターンでサービスとアプリケーションを実装できます。これらのサービスは、開発者自身のラップトップやさまざまなホスティング プラットフォームなどの分散環境を含む、あらゆる環境で実行できます。
サーキット ブレーカー モードでは、アプリケーションが障害が解決されたかどうかを検出し、問題が解決されたと思われる場合にアクションの呼び出しを試みることもできます。
サーキット ブレーカーはシステムに安定性と柔軟性を追加し、システムが障害から回復する際に安定性を提供し、この障害がパフォーマンスに与える影響を最小限に抑えます。操作がタイムアウトする (または返されない) のを待つのではなく、失敗する可能性のある操作のリクエストをすぐに拒否することで、システムの応答時間を維持するのに役立ちます。 サーキット ブレーカーが状態を変更するたびにイベントを発生させる場合、この情報を使用して、サーキット ブレーカーによって保護されているシステムのコンポーネントの正常性を監視したり、サーキット ブレーカーがトリップしたときに管理者に警告したりできます。オンの状態。
4. Spring Cloud のコア コンポーネントは何ですか?1. サービス検出 - Netflix Eureka
AWS リージョンで実行されている中間層サービスを見つけるために使用される RESTful サービス。これは、Eureka サーバーと Eureka クライアントの 2 つのコンポーネントで構成されます。サービス登録サーバーとしてEurekaサーバーを使用します。
Eureka クライアントは、サーバーとの対話を簡素化し、ポーリング ロード バランサーとして機能し、サービスのフェイルオーバー サポートを提供するために使用される Java クライアントです。 Netflix は、実稼働環境で別のクライアントを使用し、トラフィック、リソース使用率、エラー ステータスに基づいて重み付けされた負荷分散を提供します。 2. クライアント側の負荷分散 - Netflix リボン
Ribbon は主にクライアント側のソフトウェア負荷分散アルゴリズムを提供します。リボン クライアント コンポーネントは、接続タイムアウト、再試行、再試行アルゴリズムなどの一連の完全な構成オプションを提供します。リボンには、プラグイン可能でカスタマイズ可能な負荷分散コンポーネントが組み込まれています。
3. サーキット ブレーカー - Netflix Hystrix
サーキット ブレーカーは、アプリケーションが失敗する可能性が高い操作の実行を複数回試行することを防ぎ、障害の回復を待たずにアプリケーションを続行できるようにします。または、障害が永続的であると判断される間、CPU サイクルが無駄になります。サーキット ブレーカー モードを使用すると、アプリケーションは障害が解決されたかどうかを検出することもできます。問題が解決されたと思われる場合、アプリケーションは操作の呼び出しを試行できます。
4. サービスゲートウェイ - Netflix Zuul
nginx のリバースプロキシ機能と似ていますが、Netflix 自体も他のコンポーネントと連携する機能を追加しています。
5. 分散構成 - Spring Cloud Config
これはまだ静的であり、動的構成更新を実現するには Spring Cloud Bus と調整する必要があります。
以上が2020 年の新しい Java 面接の質問 - Spring Boot/Spring Cloud (2)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。