Я реализовал кластер на сервере Payara с 3 узлами (A, B & C) в качестве автономных экземпляров. Я использую HAproxy в качестве балансировки нагрузки, и все работает нормально.Clustering Websockets Tyrus Java
Я добавил WebSockets в свой проект, и HAProxy автоматически переключается с HTTP на туннельный режим, когда клиент запрашивает websocket.
Моя проблема заключается в следующем: Мне нужно получить сеанс websocket независимо от подключенного узла. Например: «У меня есть 3 пользователя, подключенных к приложению. Пользователь 1 и Пользователь 2 подключены к узлу А. Пользователь 3 - , подключенный к узлу B. Событие возникает на узле C, для которого пользователю 1 и 3 требуется но я не участвую в сеансах Node C User 1 и User 2 ».
Я попытался использовать распределенный список Hazelcast для хранения сеансов в пользовательском соединении (метод OnOpen). Но когда я назвал метод «добавить» в списке, это исключает исключение HazelcastSerializationException, поскольку объект сеанса Tyrus не является Serializable.
Как я могу решить свою проблему?
Благодаря
Вы пытались написать свои собственные методы сериализации? http://stackoverflow.com/a/7290812/212224 – Mike
Да, я пробовал, но это не работает. Я пытаюсь использовать Hazelcast Executor Service, но это вызывает com.hazelcast.nio.serialization.HazelcastSerializationExcept ion: java.lang.ClassNotFoundException: com.MyTask. –