Red Hat Data Grid
Data Grid は、高性能の分散型インメモリーデータストアです。
- スキーマレスデータ構造
- さまざまなオブジェクトをキーと値のペアとして格納する柔軟性があります。
- グリッドベースのデータストレージ
- クラスター間でデータを分散および複製するように設計されています。
- エラスティックスケーリング
- サービスを中断することなく、ノードの数を動的に調整して要件を満たします。
- データの相互運用性
- さまざまなエンドポイントからグリッド内のデータを保存、取得、およびクエリーします。
1. Data Grid RESP エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
シングルポートエンドポイントでは、RESP エンドポイントはデフォルトで有効になっています。Redis クライアント接続は自動的に検出され、内部コネクターにルーティングされます。RESP エンドポイントは以下で動作します。
- スタンドアロンの Data Grid Server デプロイメントは、各サーバーインスタンスが独立して実行する構成であり、その動作はスタンドアロンの Redis と完全に同等です。
- サーバーインスタンスが相互にデータを複製または分散する、クラスター化された Data Grid Server デプロイメント。クラスター化されたデプロイメントは、クライアントにフェイルオーバー機能を提供します。
前提条件
- Data Grid Server をインストールします。
手順
検証
Data Grid Server を起動するときに、次のログメッセージを確認します。
[org.infinispan.SERVER] ISPN080018: Started connector Resp (internal)
Redis クライアントを使用して RESP エンドポイントに接続できるようになりました。たとえば、Redis CLI を使用すると、次のようにしてエントリーをキャッシュに追加できます。
redis-cli -p 11222 --user username --pass password
127.0.0.1:11222> SET k v
OK
127.0.0.1:11222> GET k
"v"
127.0.0.1:11222> quit
1.1. RESP エンドポイントのキャッシュの設定 リンクのコピーリンクがクリップボードにコピーされました!
RESP エンドポイントは respCache キャッシュを自動的に設定して開始します。このキャッシュの設定は次のとおりです。
-
Data Grid Server のクラスタリングモードに応じて、
local-cacheまたはdistributed-cacheになります。 -
キーと値の両方に対して
application/octet-streamエンコードを使用します。 -
RESPHashFunctionPartitionerハッシュパーティショナー。Redis クライアントで使用される CRC16 ハッシュをサポートします。
キャッシュの明示的な設定
RESP コネクターの要件に違反しない限り、キャッシュのカスタム設定を指定できます。違反すると、サーバーが例外を出力し、起動しません。主な制約は次のとおりです。
-
ハッシュパーティショニング関数は、
org.infinispan.distribution.ch.impl.RESPHashFunctionPartitionerにする必要があります。 -
キーエンコーディングは
application/octet-streamにする必要があります。
明示的なキャッシュ設定の例を次に示します。
XML
<distributed-cache name="respCache" aliases="0" owners="2"
key-partitioner="org.infinispan.distribution.ch.impl.RESPHashFunctionPartitioner"
mode="SYNC" remote-timeout="17500" statistics="true">
<encoding media-type="application/octet-stream"/>
</distributed-cache>
JSON
{
"respCache": {
"distributed-cache": {
"aliases": ["0"],
"owners": "2",
"key-partitioner": "org.infinispan.distribution.ch.impl.RESPHashFunctionPartitioner",
"mode": "SYNC",
"statistics": true,
"encoding": {
"media-type": "application/octet-stream"
}
}
}
}
YAML
respCache:
distributedCache:
aliases:
- "0"
owners: "2"
keyPartitioner: "org.infinispan.distribution.ch.impl.RESPHashFunctionPartitioner"
mode: "SYNC"
statistics: "true"
encoding:
mediaType: "application/octet-stream"
Data Grid コンソールでキャッシュエントリーを表示する場合は、Protobuf エンコーディングを使用してキャッシュ値のエンコーディングを設定します (value media-type="application/x-protostream")。
明示的な RESP エンドポイント設定
シングルポートエンドポイントで使用される暗黙的な設定がニーズに合わない場合は、明示的な設定を利用できます。
XML
<endpoints>
<endpoint socket-binding="default" security-realm="default">
<resp-connector cache="mycache" />
<hotrod-connector />
<rest-connector/>
</endpoint>
</endpoints>
JSON
{
"server": {
"endpoints": {
"endpoint": {
"socket-binding": "default",
"security-realm": "default",
"resp-connector": {
"cache": "mycache"
},
"hotrod-connector": {},
"rest-connector": {}
}
}
}
}
YAML
server:
endpoints:
endpoint:
socketBinding: "default"
securityRealm: "default"
respConnector:
cache: "mycache"
hotrodConnector: ~
restConnector: ~