Data Grid での Memcached プロトコルエンドポイントの使用
Data Grid Memcached エンドポイントを使用してリモートキャッシュと対話する
概要
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章 Memcached サーバー リンクのコピーリンクがクリップボードにコピーされました!
Data Grid サーバーディストリビューションには、Memcached テキスト および バイナリー プロトコルを実装するサーバーモジュールが含まれています。これにより、Memcached クライアントは 1 つまたは複数の Data Grid がサポートする Memcached サーバーに接続できるようになります。これらのサーバーは Memcached のようにスタンドアロンにすることができ、各サーバーは独立して動作し、他のサーバーと通信しません。また、サーバーをクラスター化して、サーバーがコンテンツを他の Data Grid でサポートされた Memcached サーバーにレプリケートまたはディストリビュートし、クライアントにフェイルオーバー機能を提供することもできます。
Memcached エンドポイントは、シングルポートエンドポイントではデフォルトで有効になっています。Memcached クライアント接続は自動的に検出され、内部コネクターにルーティングされます。
1.1. クライアントエンコーディング リンクのコピーリンクがクリップボードにコピーされました!
Memcached テキストプロトコルでは、クライアントによって読み書きされるデータ値が raw バイトであると想定しています。
Memcached クライアントが、データ型をネゴシエートしてサーバーからデータを取得したり、異なる形式でデータを送信したりすることはできません。オプションで、特定のメディアタイプでエンコードされた値を処理するようにサーバーを設定することもできます。memcached-connector 要素に client-encoding 属性を設定すると、サーバーはこの設定された形式でコンテンツを返し、クライアントもこの形式でデータを送信できるようになります。
client-encoding は、Rest、HotRod、Memcached などの複数のリモートエンドポイントから単一のキャッシュにアクセスする場合に便利です。これにより、ユーザーは Memcached テキストクライアントへの応答と要求をカスタマイズすることもできます。エンドポイント間の相互運用性は、エンドポイントの相互運用性のドキュメントを参照してください。
1.2. プロトコル検出 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Memcached コネクターは、memcached-connector 要素の protocol 属性を TEXT、BINARY、AUTO のいずれかに設定することにより、手動と自動の両方のプロトコル設定をサポートします。自動検出は、Memcached コネクターが専用のソケットバインディング上にあるか、単一のポートエンドポイントの一部であるかによって異なります。単一ポートエンドポイントでテキストプロトコルクライアントを検出するには、他のプロトコルからの要求を明確にするために認証が必要です。
1.3. セキュリティー リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Memcached コネクターは、テキストプロトコルとバイナリープロトコルの両方の認証をサポートします。2 つのバリアントは認証を異なる方法で実装するため、サポートされるメカニズムは使用されているプロトコルによって異なります。
1.3.1. テキストプロトコル リンクのコピーリンクがクリップボードにコピーされました!
Memcached テキストプロトコルでの認証は、キーが無視され、値がスペースで区切られたユーザー名とパスワードの連結となる最初の set コマンドによって実行されます。この認証スキームには、プレーンテキストをサポートするセキュリティーレルムが必要です。
1.3.2. バイナリープロトコル リンクのコピーリンクがクリップボードにコピーされました!
Memcached バイナリープロトコルでの認証は、SASL チャレンジ/レスポンススキームをラップする専用の操作を介して実行されます。この認証スキームは、すべての Data Grid セキュリティーレルム実装で機能します。
1.3.3. Flush All リンクのコピーリンクがクリップボードにコピーされました!
クラスター化された環境でも、flush_all コマンドは呼び出しが行われる Data Grid Memcached サーバーのみをクリアします。このフラッシュをクラスター内の他のノードに伝播する試みはありません。これは、遅延のある flush_all のユースケースを Data Grid Memcached サーバーで再現できるようにするためです。flush_all に遅延を渡す目的は、異なる Memcached サーバーを異なる時間にフラッシュできるようにし、すべての Memcached サーバーが空になったことにより、リクエストによってデータベースが過負荷になるのを回避することです。詳細は、Memcached テキストプロトコルの flush_all に関するセクション を参照してください。
1.4. サポートされない機能 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Data Grid ベースの Memcached 実装で現在サポートされていない Memcached テキストプロトコルの機能を詳しく説明します。
1.4.1. 個々の統計情報 リンクのコピーリンクがクリップボードにコピーされました!
C/C++ ベースのオリジナルの Memcached 実装と、Java ベースの Data Grid 実装には違いがあります。サポートされていない汎用統計情報がいくつかあります。これらのサポートされていない統計情報については、Data Grid Memcached サーバーは常に 0 を返します。
サポートされていない統計情報
- pointer_size
- rusage_user
- rusage_system
- bytes
- curr_connections
- total_connections
- connection_structures
- auth_cmds
- auth_errors
- limit_maxbytes
- threads
- conn_yields
- reclaimed
統計情報の設定
統計情報の設定はサポートされていません。
引数パラメーターによる設定
Data Grid Memcached サーバーは、stats コマンドに引数を渡すことをサポートしていません。パラメーターが渡された場合、Data Grid Memcached サーバーは CLIENT_ERROR で応答します。
hold time パラメーターの削除
Memcached は、delete コマンドのオプションの hold time パラメーターを使用しなくなったため、Data Grid ベースの Memcached サーバーではこの機能は実装されません。
verbosity コマンド
Data Grid ロギングはログレベルのみの定義に簡略化できないため、verbosity コマンドはサポートされていません。
メタプロトコル
Memcached 1.6 で導入された Memcached メタプロトコルはサポートされていません。