Hot Rod Node.JS クライアントガイド
Hot Rod JS クライアントの設定および使用
概要
Red Hat Data Grid リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は、高性能の分散型インメモリーデータストアです。
- スキーマレスデータ構造
- さまざまなオブジェクトをキーと値のペアとして格納する柔軟性があります。
- グリッドベースのデータストレージ
- クラスター間でデータを分散および複製するように設計されています。
- エラスティックスケーリング
- サービスを中断することなく、ノードの数を動的に調整して要件を満たします。
- データの相互運用性
- さまざまなエンドポイントからグリッド内のデータを保存、取得、およびクエリーします。
Data Grid のドキュメント リンクのコピーリンクがクリップボードにコピーされました!
Data Grid のドキュメントは、Red Hat カスタマーポータルで入手できます。
Data Grid のダウンロード リンクのコピーリンクがクリップボードにコピーされました!
Red Hat カスタマーポータルで Data Grid Software Downloads にアクセスします。
Data Grid ソフトウェアにアクセスしてダウンロードするには、Red Hat アカウントが必要です。
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ を参照してください。
第1章 Hot Rod JS クライアントのインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod JS クライアントをインストールする前に、システムが要件を満たしていることを確認してください。次に、Hot Rod JS クライアントを Data Grid Server に接続し、キーと値に異なるメディアタイプを使用し、ロギングをカスタマイズできます。
1.1. Hot Rod JS クライアントのインストール リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は、NPM パッケージマネージャーからインストールできる Hot Rod JS クライアントのディストリビューションを提供します。
前提条件
-
Node.js バージョン
12または14。 - Data Grid Server 8.3。
手順
Red Hat リポジトリーを NPM 設定に追加します。
npm configコマンドを使用するか、プロジェクトの.npmrcファイルに以下を追加できます。@redhat:registry=https://npm.registry.redhat.com registry=https://registry.npmjs.org/
@redhat:registry=https://npm.registry.redhat.com registry=https://registry.npmjs.org/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Hot Rod JS クライアントを次のようにインストールします。
npm install @redhat/infinispan
npm install @redhat/infinispanCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. Data Grid コネクションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod JS クライアントを Data Grid Server に接続するように設定します。
複数のサーバーアドレスを設定に追加する場合、Hot Rod JS クライアントは、接続できるノードを見つけるまでループします。
ただし、クライアントがクラスタートポロジー全体を受け取るには、Data Grid Server アドレスを 1 つだけ追加する必要があります。Hot Rod JS クライアントがクラスターのメンバーである単一のサーバーインスタンスに接続する場合、クライアントはすべてのノードのアドレス情報を取得します。
Hot Rod JS クライアントはトポロジーを認識するため、1 つの Data Grid Server への接続が切断されると、クライアントはクラスター内の他のノードで不完全な操作を再試行します。同様に、ある Data Grid Server に登録されているクライアントリスナーに障害が発生した場合や、クラスターを離れると、クライアントはリスナー登録をクラスター内の別のノードに透過的に移行し、イベントの受信を継続できるようにします。
前提条件
- Hot Rod JS クライアントをインストールします。
- 稼働中の Data Grid Server インスタンスが 1 つ以上ある。
手順
クライアント設定で Data Grid Server のホスト名およびポートを指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.1. クライアント設定での Data Grid クラスターの定義 リンクのコピーリンクがクリップボードにコピーされました!
クロスサイトレプリケーションを実行するように別のデータセンターに Data Grid クラスターを設定すると、異なるサイトの接続詳細をクライアント設定に追加できます。
前提条件
- Hot Rod JS クライアントをインストールします。
- クロスサイトレプリケーション用に Data Grid を設定します。
手順
-
clusters定義を設定に追加します。 各 Data Grid クラスターの
nameとservers定義を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.2. Data Grid クラスターの手動切り替え リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod JS クライアントが接続される Data Grid クラスターを変更します。
前提条件
- Hot Rod JS クライアント設定で Data Grid クラスターを定義します。
手順
-
switchToCluster(clusterName)メソッドを呼び出して、クライアントに、クライアント設定に定義されている Data Grid クラスターへの切り替えを強制します。 switchToDefaultCluster()メソッドを呼び出して、最初の Data Grid クラスターの使用を開始します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. 認証の設定 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Server は、Hot Rod JS クライアント接続を認証するために異なる SASL メカニズムを使用します。
前提条件
- Data Grid ユーザーを作成します。
- SASL 認証メカニズムを Data Grid Server 設定の Hot Rod コネクターに追加します。
手順
- Hot Rod JS クライアント設定を開いて編集します。
-
enabled: trueフラグを設定するauthenticationメソッドを追加します。 -
Hot Rod コネクターの SASL 認証メカニズムに一致する
saslMechanismパラメーターの値を指定します。 - 必要に応じて、SASL 認証メカニズムに固有のパラメーターを設定します。
1.3.1. SASL 認証メカニズム リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod JS クライアントは、以下の SASL 認証メカニズムを使用して Data Grid Server に接続できます。
PLAIN
HTTP BASIC 認証と同様の方法で、ネットワーク上のプレーンテキスト (暗号化されていない) で認証情報を送信します。
Data Grid の認証情報のセキュリティーを保護するには、TLS 暗号化と組み合わせた PLAIN 認証のみを使用する必要があります。
DIGEST-MD5
nonce に加えて MD5 ハッシュアルゴリズムを使用して、認証情報を暗号化します。
SCRAM
ハッシュアルゴリズムと nonce の値に加えて salt 値を使用して認証情報を暗号化します。Hot Rod エンドポイントは、SCRAM-SHA-1、SCRAM-SHA-256、SCRAM-SHA-384、SCRAM-SHA-512 ハッシュアルゴリズムを強度順にサポートします。
1.4. 暗号化の設定 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Server は、異なるタイプの SSL/TLS 暗号化を適用して、Hot Rod JS クライアント接続をセキュアにすることができます。
前提条件
- Hot Rod JS クライアントが Data Grid Server アイデンティティーを検証するのに使用できるトラストストアを作成します。
- Data Grid Server を設定してクライアント証明書を検証または認証する場合は、必要に応じてキーストアを作成します。
手順
- Hot Rod JS クライアント設定を開いて編集します。
-
enabled: trueフラグを設定するsslメソッドを追加します。 - 使用する暗号化タイプに固有のその他の設定を指定します。
1.4.1. 暗号化タイプ リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod JS クライアントは、異なるタイプの暗号化を使用して、Data Grid Server とセキュアな接続をネゴシエートできます。
Data Grid Server のアイデンティティー
基本的な暗号化の場合、次のように、Data Grid Server 証明書の署名証明書または CA バンドルを設定に追加できます。
Data Grid Server に発行された証明書を検証するには、Hot Rod JS クライアントでは、完全な証明書チェーンまたは Root CA で始まる部分的なチェーンのいずれかが必要です。
トラストストア
以下のように、PKCS12 または PFX 形式でトラストストアを追加できます。
クライアント証明書認証
Data Grid Server 設定でクライアント証明書認証を有効にする場合は、以下の例のようにキーストアを追加します。
クライアント証明書認証を使用する場合は、Hot Rod JS クライアントを EXTERNAL 認証メカニズムで設定する必要があります。
Server Name Indication (SNI)
SNI を使用して Hot Rod JS クライアントが Data Grid Server ホスト名を要求できるようにするには、Data Grid Server 設定のホスト名と一致する sniHostName パラメーターの値を設定します。
The sniHostName パラメーターのデフォルトは localhost です。
Hot Rod JS クライアントは、デフォルトで自己署名証明書を許可しません。これにより、パブリック認証局 (CA) キーが利用できない開発環境またはテスト環境で問題が発生する可能性があります。
Java keytool で署名済み証明書を作成するなど、Data Grid コードチュートリアル を参照してください。
1.5. データフォーマットの設定 リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod JS クライアントは、キーおよび値をネイティブの JavaScript Object Notation (JSON) オブジェクト、または String オブジェクトとして処理できます。デフォルトでは、クライアントはエントリーを String オブジェクトとして処理します。JSON 形式で Data Grid Server にデータを送信する場合は、Hot Rod JS クライアントを設定する必要があります。
スクリプト操作は、String キー/値のペアと String パラメーターのみをサポートします。
手順
-
dataFormat設定をクライアントに追加します。 -
keyTypeおよびvalueTypeパラメーターで、キーおよび値のデータ形式を随時設定します。
キーと値は異なるメディアタイプを持つことができます。JSON オブジェクトには、application/json を指定します。String オブジェクトの場合は、text/plain を指定するか、デフォルトを使用するようにパラメーターを省略します。
1.6. ロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod JS クライアントは、JSON 形式で設定を指定して変更できる log4js を使用します。
手順
JSON 形式でロギング設定を作成します。
たとえば、以下の JSON は、TRACE レベルのログイベントをファイルに書き込むアペンダーを設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
var log4js = require('log4js')ステートメントを Hot Rod JS クライアント設定に追加します。 以下の例のように、
log4js.configure()メソッドを使用して JSON ロギング設定へのパスを指定します。var log4js = require('log4js'); log4js.configure('path/to/my-log4js.json');var log4js = require('log4js'); log4js.configure('path/to/my-log4js.json');Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第2章 Hot Rod JS クライアントの使用 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid で Hot Rod JS クライアントを使用する例を見てみましょう。
2.1. Hot Rod JS クライアントの例 リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod JS クライアントをインストールして設定した後に、Data Grid とのより複雑な操作に移動する前に、一部の基本キャッシュ操作を試して使用を開始します。
2.1.1. Hello world リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Server で"myCache"という名前のキャッシュを作成し、エントリーを追加および取得します。
2.1.2. エントリーの使用およびキャッシュ統計の取得 リンクのコピーリンクがクリップボードにコピーされました!
単一エントリーを追加、取得、削除し、キャッシュの統計を表示します。
2.1.3. 複数のキャッシュエントリーの使用 リンクのコピーリンクがクリップボードにコピーされました!
単純な再帰的ループで複数のキャッシュエントリーを作成します。
2.1.4. Async および Await コンストラクトの使用 リンクのコピーリンクがクリップボードにコピーされました!
Node.js は、キャッシュ操作を簡素化できる async および await コンストラクトを提供します。
単一のキャッシュエントリー
複数のキャッシュエントリー
2.1.5. サーバー側のスクリプトの実行 リンクのコピーリンクがクリップボードにコピーされました!
カスタムスクリプトを Data Grid Server に追加し、Hot Rod JS クライアントから実行できます。
サンプルスクリプト
// mode=local,language=javascript,parameters=[k, v],datatype='text/plain; charset=utf-8' cache.put(k, v); cache.get(k);
// mode=local,language=javascript,parameters=[k, v],datatype='text/plain; charset=utf-8'
cache.put(k, v);
cache.get(k);
スクリプト実行
2.1.6. イベントリスナーの登録 リンクのコピーリンクがクリップボードにコピーされました!
イベントリスナーは、エントリーの作成、変更、削除、期限切れのタイミングなど、キャッシュ更新が発生したときに Hot Rod JS クライアントに通知します。
エントリー作成および変更のイベントは、クライアントにキーと値について通知します。エントリー削除および有効期限のイベントは、クライアントに対してキーのみについて通知します。
イベントリスナーの登録
イベントリスナーからの通知を調整して、key-value-with-previous-converter-factory コンバーターで不要なラウンドトリップを回避します。これにより、たとえば、後で取得するのではなく、イベント内のキーに関連付けられた値を見つけることができます。
リモートイベントコンバーター
カスタムコンバーターを Data Grid Server に追加できます。詳細は、Data Grid のドキュメント を参照してください。
2.1.7. 条件操作の使用 リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod プロトコルは、Data Grid に値に関するメタデータを保存します。このメタデータは、特定の条件に対してキャッシュ操作を実行できる決定論的な要因を提供します。たとえば、バージョンに一致しない場合はキーの値を置き換えることができます。
getWithMetadata メソッドを使用して、キーの値に関連付けられたメタデータを取得します。
2.1.8. 一時データの使用 リンクのコピーリンクがクリップボードにコピーされました!
getWithMetadata メソッドおよび size メソッドを使用してキャッシュエントリーを失効させます。