如何在群集级别配置序列化程序/反序列化程序。我可以使用以下Java代码在客户端级别设置序列化器/解串器。
ClientConfig clientConfig = new ClientConfig();
SerializerConfig userDataSerializer = new
SerializerConfig().setTypeClass(UserData.class).setImplementation(new
UserDataSerializer()); clientConfig.getSerializationConfig().addSerializerConfig(userDataSerializer);
但是当make SQL查询它时会抛出以下错误。
Exception in thread "main" com.hazelcast.nio.serialization.HazelcastSerializationException: There is no suitable de-serializer for type 2. This exception is likely to be caused by differences in the serialization configuration between members or between clients and members.
发生上述错误是因为Hazelcast集群不知道如何对对象进行序列化/反序列化。
我使用Kryo自定义序列化程序进行序列化(基于此博客http://blog.hazelcast.com/comparing-serialization-methods/)
请帮忙!
如果您正在运行查询,则群集的服务器端将需要能够反序列化该对象。
服务器端的序列化机制必须与客户端匹配才能工作;如此有帮助,你可以在两者上使用相同的。
您需要做的是在服务器端扩展Config
,就像在客户端扩展ClientConfig
一样。
This大致是你想要的。
在集群中,每个节点都需要知道序列化器/反序列化器以执行Predicate / SQLPredicate。为此,所需的序列化程序类(作为Java jar文件)应存在于启动命令Java CLASSPATH中。