2.14. Hot Rod Java クライアントマーシャリング


Hot Rod は、Java オブジェクトをバイナリー形式に変換する必要があるバイナリー TCP プロトコルです。これにより、ネットワーク経由で転送したり、ディスクに保存したりできます。

デフォルトでは、Data Grid は ProtoStream API を使用して、言語に依存しない下位互換性のある形式で、Java オブジェクトをプロトコルバッファー (Protobuf) にエンコードおよびデコードします。ただし、カスタムマーシャラーを実装して使用することもできます。

2.14.1. SerializationContextInitializer 実装の設定

ProtoStream SerializationContextInitializer インターフェイスの実装を Hot Rod クライアント設定に追加して、Data Grid がカスタム Java オブジェクトをマーシャリングできるようにします。

手順

  • 以下のように SerializationContextInitializer 実装を Hot Rod クライアント設定に追加します。

hotrod-client.properties

infinispan.client.hotrod.context-initializers=org.infinispan.example.LibraryInitializerImpl,org.infinispan.example.AnotherExampleSciImpl

プログラムによる設定

ConfigurationBuilder builder = new ConfigurationBuilder();
builder
      .addServer()
      .host("127.0.0.1")
      .port(11222)
      .addContextInitializers(new LibraryInitializerImpl(), new AnotherExampleSciImpl());
RemoteCacheManager rcm = new RemoteCacheManager(builder.build());

2.14.2. カスタムマーシャラーの設定

カスタムマーシャラーを使用するように Hot Rod クライアントを設定します。

手順

  1. org.infinispan.commons.marshall.Marshaller インターフェイスを実装します。
  2. Hot Rod クライアント設定でクラスの完全修飾名を指定します。
  3. Java クラスを Data Grid デシリアライズホワイトリストに追加します。

    以下の例では、Person または Employee が含まれる完全修飾名を持つクラスのみが許可されます。

    ConfigurationBuilder clientBuilder = new ConfigurationBuilder();
    clientBuilder.marshaller("org.infinispan.example.marshall.CustomMarshaller")
      .addJavaSerialWhiteList(".*Person.*", ".*Employee.*");
      ...
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.