検索

第1章 Red Hat build of Quarkus でのデータソースの設定

download PDF

統合設定モデルを使用して、Java Database Connectivity (JDBC) とリアクティブデータベースドライバーのデータソースを定義できます。

アプリケーションは、データソースを使用してリレーショナルデータベースにアクセスします。Quarkus では、Java Database Connectivity (JDBC) とリアクティブデータベースドライバーのデータソースを定義するための統合設定モデルが提供されています。

Quarkus では、AgroalVert.x を使用することで、JDBC とリアクティブドライバーで高性能かつスケーラブルなデータソース接続プールが可能になります。quarkus-jdbc-* および quarkus-reactive-*-client エクステンションは、ビルド時間の最適化を提供し、設定されたデータソースをセキュリティー、ヘルスチェック、メトリクスなどの Quarkus 機能と統合します。

リアクティブデータソースの消費と使用の詳細は、Quarkus Reactive SQL clients ガイドを参照してください。

さらに、JDBC データソースの消費と使用については、Quarkus Hibernate ORM ガイドを参照してください。

1.1. Quarkus で datasources の設定を開始する

このセクションでは、基本的な部分を理解しているユーザー向けに、データソースのセットアップを容易にするための概要とコードサンプルについて説明します。

より高度な設定例については、参考資料 を参照してください。

1.1.1. 開発モードでのゼロコンフィグセットアップ

Quarkus では Dev Services 機能を使用することで容易にデータベースを設定でき、開発 (dev) モードでのテストや稼働を目的としたデータベースのゼロコンフィグセットアップが可能になります。開発モードでは、DevServices を使用して Quarkus にデータベースを処理させることが推奨されます。一方、実稼働モードでは、Quarkus 外で管理されるデータベースを指す明示的なデータベース設定の詳細を指定します。

Dev Services を使用するには、目的のデータベース型に適したドライバーエクステンション (jdbc-postgresql など) を pom.xml ファイルに追加します。開発モードでは、データベース接続の詳細を明示的に指定しない場合、Quarkus が自動的にデータベースのセットアップを処理し、アプリケーションとデータベース間の接続を指定します。

ユーザー認証情報を指定すると、基礎となるデータベースがその認証情報を使用するように設定されます。これは、外部ツールを使用してデータベースに接続する場合に便利です。

この機能を使用するには、データベース型に応じて Docker または Podman コンテナーランタイムがインストールされていることを確認してください。H2 などの特定のデータベースは in-memory モードで動作し、コンテナーランタイムを必要としません。

ヒント

本番モードで使用する実際の接続詳細の前に %prod を付けて、開発モードに適用されないようにしてください。詳細は、"設定リファレンス" ガイドの プロファイル セクションを参照してください。

Dev Services の詳細は、Dev Services の概要 を参照してください。

詳細とオプションの設定については、Dev Services for databases を参照してください。

1.1.2. JDBC データソースを設定する

  1. 選択したデータベースに応じて、適切な JDBC エクステンションを追加します。

    • quarkus-jdbc-db2
    • quarkus-jdbc-derby
    • quarkus-jdbc-h2
    • quarkus-jdbc-mariadb
    • quarkus-jdbc-mssql
    • quarkus-jdbc-mysql
    • quarkus-jdbc-oracle
    • quarkus-jdbc-postgresql
  2. JDBC データソースを設定します。

    quarkus.datasource.db-kind=postgresql 1
    quarkus.datasource.username=<your username>
    quarkus.datasource.password=<your password>
    
    quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/hibernate_orm_test
    quarkus.datasource.jdbc.max-size=16
    1
    この設定値は、クラスパス上に複数のデータベースエクステンションがある場合にのみ必要です。

利用可能なエクステンションが 1 つだけの場合、Quarkus はそれが適切であると想定します。ドライバーをテストスコープに追加すると、Quarkus は指定されたドライバーをテストに自動的に含めます。

1.1.2.1. JDBC 接続プールのサイズ調整

負荷のピーク時の過負荷からデータベースを保護するには、データベースの負荷にスロットリングを適用できるようプールサイズを適切に設定します。最適なプールサイズは、並列アプリケーションユーザーの数やワークロードの性質など、多くの要因により異なります。

プールサイズの設定が小さすぎると、接続の待機中に一部のリクエストがタイムアウトになる可能性があることに注意してください。

プールサイズ調整プロパティーの詳細は、JDBC 設定リファレンス セクションを参照してください。

1.1.3. リアクティブデータソースを設定する

  1. 選択したデータベースに応じて、適切なリアクティブエクステンションを追加します。

    • quarkus-reactive-db2-client
    • quarkus-reactive-mssql-client
    • quarkus-reactive-mysql-client
    • quarkus-reactive-oracle-client
    • quarkus-reactive-pg-client
  2. リアクティブデータソースを設定します。

    quarkus.datasource.db-kind=postgresql 1
    quarkus.datasource.username=<your username>
    quarkus.datasource.password=<your password>
    
    quarkus.datasource.reactive.url=postgresql:///your_database
    quarkus.datasource.reactive.max-size=20
    1
    この設定値は、クラスパス上に複数のリアクティブドライバーエクステンションがある場合にのみ必要です。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.