メインコンテンツまでスキップ
バージョン: 3.12

ScalarDL Ledger を介して ScalarDL アプリケーションを実行する

注記

このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。

このガイドでは、ScalarDL Ledger を介して ScalarDL アプリケーションを実行する方法を説明します。このドキュメントは、すでにクイックスタートチュートリアルのいずれかを試し、アプリケーションを書くガイドを参考にしてクライアント SDK を使用して ScalarDL を統合したアプリケーションを作成済みであることを前提としています。

設定を決定する

Ledger を介して ScalarDL アプリケーションを実行する前に、まず Ledger および Ledger と相互作用するクライアントを設定する必要があります。

以下に説明するとおり、設定する必要がある重要なオプションと決定事項がいくつかあります。

Auditor を無効化する

Ledger のみを介してアプリケーションを実行するため、Auditor を無効化する必要があります。Auditor の無効化は、以下のようにクライアントと Ledger の設定で行う必要があります。

  • クライアントの設定で scalar.dl.client.auditor.enabledfalse に設定します。(false がデフォルト値のため、このプロパティを省略することもできます。)
  • Ledger の設定で scalar.dl.ledger.auditor.enabledfalse に設定します。(false がデフォルト値のため、このプロパティを省略することもできます。)
注記

scalardl-samples 環境を使用している場合は、対応するストレージの ledger.properties ファイルを参照してください。

設定の詳細については、以下を参照してください:

認証方式を決定する

クライアントの認証方式として、電子署名または HMAC のいずれかを選択する必要があります。簡単に比較すると、電子署名方式は認証に加えて否認防止も提供しますが低速であり、HMAC 方式は認証のみを提供しますが高速です。

認証方式は以下のように設定できます。クライアントと Ledger の両方で同じ方式(digital-signature または hmac)を設定する必要があります。

  • クライアントの設定で、scalar.dl.client.authentication.methoddigital-signature または hmac(選択した方式に応じて)に設定します。
  • Ledger の設定で、scalar.dl.ledger.authentication.methoddigital-signature または hmac(選択した方式に応じて)に設定します。

また、秘密情報を準備する必要があります。電子署名方式を使用する場合は証明書と秘密鍵を準備する必要があります。HMAC 方式を使用する場合は、シークレットキーを準備する必要があります。ScalarDL の認証についてより詳しくは、ScalarDL 認証ガイドをご覧ください。

設定の詳細については、以下を参照してください:

データベースの設定

Ledger は ScalarDB を使用してデータベースとやり取りするため、ScalarDB がサポートするさまざまなデータベース上で ScalarDL を実行できます。そのため、アプリケーションの要件に基づいて ScalarDB がサポートするデータベースを決定し、いくつかの ScalarDB パラメータを設定する必要があります。

ScalarDB パラメータの詳細については、ScalarDB の設定も参照してください。

基盤データベース

使用するデータベースは以下のように設定できます:

  • Ledger の設定で、使用するデータベースに基づいて scalar.db.storagescalar.db.contact_pointsscalar.db.username、および scalar.db.password を適切な値に設定します。

ScalarDB を介して ScalarDL でサポートされるデータベースとそのバージョンについては、要件を参照してください。

警告

Function 機能を介してアプリケーションがテーブルの読み書きを行い、そのテーブルが ScalarDB アプリケーションからも直接アクセスされる場合は、ここで選択したデータベースを適切に設定する必要があります。具体的には、一貫性を保証するために、ScalarDL アプリケーションと ScalarDB アプリケーションの両方が同じ Coordinator テーブルを参照する必要があります。

分離レベル

Ledger は、トランザクションを管理するために ScalarDB の Consensus Commit トランザクションマネージャに依存しています。トランザクションマネージャは、トランザクションの整合性と正確性を保証するために重要な、トランザクションの分離プロパティを保証する責任があります。

Ledger の分離レベルは以下のように設定できます。どの分離レベルを使用するかわからない場合は、SERIALIZABLE を使用してください。

  • Ledger の設定で、scalar.db.consensus_commit.isolation_level を選択した分離レベルに設定します。デフォルト値は SNAPSHOT です。

制限事項

ScalarDL は ScalarDB を活用していますが、以下の ScalarDB 機能は ScalarDL の整合性保証メカニズムと互換性がありません:

その他の設定を決定する

クライアントと Ledger には、TLS や gRPC 設定などの他の設定も適用できます。設定の詳細については、以下を参照してください:

Ledger を起動する

Ledger とクライアントを設定した後、Ledger を起動する必要があります。

Docker Compose を使用して Ledger をローカルで起動する方法の詳細については、お好みのデータベースで ScalarDL を起動するを参照してください。ローカルまたはクラウドベースの Kubernetes 環境で Ledger を起動する方法については、それぞれ ローカル Kubernetes 環境に ScalarDL をデプロイするまたはクラウドベース Kubernetes 環境に ScalarDL をデプロイするを参照してください。

HashStore、TableStore、または Ledger 抽象化のクライアントを設定する

アプリケーションが基づく抽象化(具体的には、HashStore、TableStore、または Ledger)に応じて、設定手順が異なります。抽象化を選択して、手順に従ってください。

HashStore クライアントをブートストラップする

アプリケーションで HashStoreClientService を作成する際、クライアント証明書またはシークレットキーと HashStore を使用するために必要なコントラクトが、ClientConfig の設定に基づいて自動的に登録されます。したがって、HashStore クライアントを手動でブートストラップする必要はありません。テスト目的などで手動で実行したい場合は、Client SDK をダウンロードするに従って HashStore Client SDK をダウンロードし、以下のコマンドを実行してください。

scalardl-hashstore bootstrap --properties <CLIENT_PROPERTIES_FILE>

アプリケーションを実行する

必要な ID とコントラクトを登録したので、ScalarDL を統合したアプリケーションを実行できます。

参照

各コマンドの詳細については、以下のコマンドリファレンスを参照してください: