この記事の最初の部分では、Tomcat を Undertow に置き換えて、アプリケーションのパフォーマンスを向上させる方法を学びました。データ圧縮を有効にして構成することに加えて、ネットワーク上を移動する HTTP 応答のサイズを削減するための高性能 Web サーバー。
ここで、永続化部分で Spring Boot アプリケーションのパフォーマンスを向上させる方法について説明しますが、その前に、JPA、Hibernate、および Hikari が何であるかを理解する必要があります。 ].
JPA または Java Persistence API は、後に Jakarta Persistence に名前変更されましたが、共通のデータ永続性フレームワークのインターフェース
JPA仕様は、ベンダー固有のマッピング実装に依存するのではなく、内部的にオブジェクト リレーショナル マッピングを定義します。
休止状態Hibernate は、JPA 仕様の具体的な実装を行う ORM フレームワークの 1 つです。つまり、この仕様で persist、remove のメソッドの必要性が説明されている場合、 更新およびデータのフェッチ。これらの動作を実際に構築するのは、Hibernate、および EclipseLink です。 、これは別の ORM.
ヒカリHikari は 接続プーリング フレームワークで、データベースへの接続を管理し、再利用できるように接続を開いた状態に保ちます。これは将来のリクエストに備えた接続の キャッシュ であり、データベースへのアクセスが高速になり、作成される新しい接続の数が減ります。
ヒカリ、JPA、および休止状態の構成application.yml の使用:
spring: hikari: auto-commit: false connection-timeout: 250 max-lifetime: 600000 maximum-pool-size: 20 minimum-idle: 10 pool-name: master jpa: open-in-view: false show-sql: true hibernate: ddl-auto: none properties: hibernate.connection.provider_disables_autocommit: true hibernate.generate_statistics: trueapplication.properties の使用:
spring: hikari: auto-commit: false connection-timeout: 250 max-lifetime: 600000 maximum-pool-size: 20 minimum-idle: 10 pool-name: master jpa: open-in-view: false show-sql: true hibernate: ddl-auto: none properties: hibernate.connection.provider_disables_autocommit: true hibernate.generate_statistics: true次に、オプションの簡単な概要を説明します:
ヒカリ
接続プール によって返されるすべての接続は、auto-commit が無効になります。
]pool からの接続を待機する時間 (ミリ秒)。クライアントを無期限に待機させるよりも、すぐに失敗してエラー メッセージを返すために短いタイムアウトを設定することをお勧めします。
プールの最大サイズ。アイドル状態と使用中の接続を含み、データベースへのアクティブな接続の最大数を決定します。プールがこの制限に達し、アイドル状態の接続がない場合、getConnection() の呼び出しは失敗するまで最大 connectionTimeout ミリ秒間ブロックされます。
と同じ
のユーザー定義名。主に を識別するためにレジストリ管理コンソールと JMX に表示されます。プール とその構成。
(Open Session In View) が有効な場合、リクエスト全体にわたってセッションが維持されます。 @Transactional アノテーションなし。セッションはリクエストが終了するまでデータベースへの接続を維持するため、アプリケーションの応答がなくなるなど、パフォーマンスの問題が発生する可能性があります。
に関連して Hibernate の動作を構成します。次の値を指定できます:
none: 何もしません。私たちは銀行のスキーマを手動で管理します。
Hibernate プロバイダーの 自動コミット を無効にしたことを に通知します。 (PostgreSQL, MySQL など)。 Hibernate は auto-commit が有効かどうかを知るために pool から接続を取得する必要があるため、これはパフォーマンスに影響します。 、彼が行うすべての取引に対して。
やプール サイズなどのHikari設定です。 、JPA および Hibernate のようなものOSIV (ビューでセッションを開く)、プロバイダの自動コミットを無効にしたことを通知します。 次のパートでは、例外と、
JVM(Java 仮想マシン) からリソースを節約するための例外の設定方法について説明します。 参考文献:
https://en.wikipedia.org/wiki/Jakarta_Persistence
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3