クラス HazelcastSessionSerializer

java.lang.ObjectSE
org.springframework.session.hazelcast.HazelcastSessionSerializer
実装されたすべてのインターフェース:
com.hazelcast.nio.serialization.Serializercom.hazelcast.nio.serialization.StreamSerializer<MapSession>

public class HazelcastSessionSerializer extends ObjectSE implements com.hazelcast.nio.serialization.StreamSerializer<MapSession>
IMap に格納されている MapSession の(逆)直列化を処理する Serializer 実装。

このシリアライザの使用はオプションであり、セッションの直列化を高速化します。使用するように構成されていない場合、Hazelcast はデフォルトで SerializableSE を介してセッションを直列化します。

Spring アプリケーションの複数のインスタンスが実行される場合、それらすべてが同じ直列化方法を使用する必要があります。このシリアライザーが別のインスタンスではなく 1 つのインスタンスに登録されている場合、最終的に HazelcastSerializationException になります。クライアントがこのシリアライザーを使用するように構成されているがメンバーは使用しないように構成されている場合、またはその逆の場合も同様です。また、この直列化で新しいインスタンスが作成されましたが、既存の Hazelcast クラスターにこれによって直列化されていない値が含まれている場合、代わりにデフォルトの値が含まれていると、再び非互換になることに注意してください。

組み込みインスタンスにシリアライザーを登録する方法の例を以下に示します。

 Config config = new Config();

 // ... other configurations for Hazelcast ...

 SerializerConfig serializerConfig = new SerializerConfig();
 serializerConfig.setImplementation(new HazelcastSessionSerializer()).setTypeClass(MapSession.class);
 config.getSerializationConfig().addSerializerConfig(serializerConfig);

 HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance(config);
 
以下は、クライアントインスタンスにシリアライザーを登録する方法の例です。クライアント / サーバーモードでシリアライザーを使用するには、シリアライザー、つまり MapSession がサーバーのクラスパスに存在し、SerializerConfig を介してサーバーごとに上記の構成で登録されている必要があることに注意してください。
 ClientConfig clientConfig = new ClientConfig();

 // ... other configurations for Hazelcast Client ...

 SerializerConfig serializerConfig = new SerializerConfig();
 serializerConfig.setImplementation(new HazelcastSessionSerializer()).setTypeClass(MapSession.class);
 clientConfig.getSerializationConfig().addSerializerConfig(serializerConfig);

 HazelcastInstance hazelcastClient = HazelcastClient.newHazelcastClient(clientConfig);
 
導入:
2.4.0
  • コンストラクターの詳細

    • HazelcastSessionSerializer

      public HazelcastSessionSerializer()
  • メソッドの詳細

    • write

      public void write(com.hazelcast.nio.ObjectDataOutput out, MapSession session) throws IOExceptionSE
      次で指定:
      インターフェース com.hazelcast.nio.serialization.StreamSerializer<MapSession>write 
      例外:
      IOExceptionSE
    • read

      public MapSession read(com.hazelcast.nio.ObjectDataInput in) throws IOExceptionSE
      次で指定:
      インターフェース com.hazelcast.nio.serialization.StreamSerializer<MapSession>read 
      例外:
      IOExceptionSE
    • getTypeId

      public int getTypeId()
      次で指定:
      インターフェース com.hazelcast.nio.serialization.SerializergetTypeId 
    • destroy

      public void destroy()
      次で指定:
      インターフェース com.hazelcast.nio.serialization.Serializerdestroy