第21章 互換性モード
互換性モードは非推奨となり、Red Hat Data Grid から削除されます。リモートエンドポイント間の相互運用性を実現するには、プロトコルの相互運用性機能を使用する必要があります。「 プロトコル相互運用性」を 参照してください。
互換性モードは、複数の方法で Red Hat Data Grid にアクセスできるように Red Hat Data Grid キャッシュを設定します。このような互換性を実現するには、各エンドポイントの異なる形式間でコンテンツを変換できるように、Red Hat Data Grid から追加の作業が必要となります。そのため、互換性モードがデフォルトで無効になっている理由です。
21.1. 互換性モードの有効化 リンクのコピーリンクがクリップボードにコピーされました!
互換性モードが想定どおりに機能するには、すべてのエンドポイントを同じキャッシュマネージャーで設定する必要があり、同じキャッシュと通信する必要があります。ブランドの新しい Red Hat Data Grid Server ディストリビューション を使用している場合、これはすべて行われます。スタンドアロンのユニットテストで実験的な場合には、このクラスは 1 つのクラス から複数のエンドポイントを起動する方法を示しています。
そのため、Red Hat Data Grid の互換性モードの使用を開始するには、XML 経由で有効にする必要があります。
infinispan.xml
<local-cache> <compatibility/> </local-cache>
<local-cache>
<compatibility/>
</local-cache>
または、プログラムで以下を実行します。
ConfigurationBuilder builder = ... builder.compatibility().enable();
ConfigurationBuilder builder = ...
builder.compatibility().enable();
Red Hat Data Grid の互換性モードについて覚えておくべき重要なことは、可能な場合はデータのアンマーシャリングやデシリアライズを試みることです。最も一般的なユースケースは、Java オブジェクトを保存し、Java オブジェクトをデシリアライズされた形式で格納することです。埋め込みキャッシュから簡単に使用できます。ここでは、仮定を念頭に置いています。たとえば、Hot336 経由で何かを保存する場合は、Java で書かれた reference Hotgitops クライアントから取得され、バイナリーペイロードが非常にコンパクトにするマーシャラーを使用します。そのため、Hotset オペレーションが互換性層に到達すると、デフォルトでは Java Hotgitops クライアントによって使用されるデフォルトのマーシャラーと同じマーシャラーを使用して、アンマーシャリングを試みます。そのため、ほとんどのケースで適切な追加設定なしのサポートを提供します。
21.1.1. オプション: 互換性マーシャラの設定 リンクのコピーリンクがクリップボードにコピーされました!
クライアントは Java 以外の言語( Ruby または Python など)用に作成された Hotで書かれたクライアントを使用している可能性があります。この場合、シリアライズされたペイロードをキャッシュに保存する Java オブジェクトに変換するか、シリアライズフォームに維持するカスタムマーシャラーを設定する必要があります。どちらのオプションも有効ですが、埋め込みキャッシュを使用している場合は、Red Hat Data Grid から取得されるオブジェクトの種類に影響します。マーシャラーは このインターフェース を実装することが予想されます。互換性マーシャラーの設定は任意で、XML で行うことができます。
infinispan.xml
<local-cache> <compatibility marshaller="com.acme.CustomMarshaller"/> </local-cache>
<local-cache>
<compatibility marshaller="com.acme.CustomMarshaller"/>
</local-cache>
または、プログラムで以下を実行します。
ConfigurationBuilder builder = ... builder.compatibility().enable().marshaller(new com.acme.CustomMarshaller());
ConfigurationBuilder builder = ...
builder.compatibility().enable().marshaller(new com.acme.CustomMarshaller());
このマーシャラーロジックの具体例は、SpyMemcachedCompatibleMarshaller にあります。spy Memcached は独自のトランスコーダーを使用してオブジェクトをマーシャリングするため、作成される互換性マーシャラーは Spy Memcached クライアント経由で保存されるマーシャリング/アンマーシャリングデータに対して行われます。言い換えると、Spy Memcached 経由で保存されたデータを取得する場合は、Java Hotgitops クライアントが同じマーシャラーを使用するように設定できます。これは、Spy Memcached マーシャラーが置かれているテストを正確に降格するものです。