Сериализатор / десериализатор Hazelcast - PullRequest
0 голосов
/ 11 марта 2019

Как настроить сериализатор / десериализатор на уровне кластера.Я могу установить сериализатор / десериализатор на уровне клиента, используя следующий код Java.

ClientConfig clientConfig = new ClientConfig();
SerializerConfig userDataSerializer = new
SerializerConfig().setTypeClass(UserData.class).setImplementation(new
UserDataSerializer()); clientConfig.getSerializationConfig().addSerializerConfig(userDataSerializer);

Но при создании 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/)

Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

В кластере каждый узел должен знать сериализатор / десериализатор для выполнения предиката / SQLPredicate.Для этого в команде запуска Java CLASSPATH должен присутствовать необходимый класс сериализатора (в виде файла jar Java).

0 голосов
/ 11 марта 2019

Если вы выполняете запрос, на стороне сервера кластера должна быть возможность десериализации объекта.

Механизм сериализации на стороне сервера должен соответствовать клиенту.сторона для работы;здесь вы можете использовать их одинаково.

Для этого вам необходимо расширить Config на стороне сервера так же, как вы расширяете ClientConfig на стороне клиента.

Это примерно то, что вы хотите.

...