Ich habe einen Cluster auf Payara Server mit 3 Knoten (A, B & C) als Standalone-Instanzen implementiert. Ich verwende HAproxy als Load Balancer und alles funktioniert gut.Clustering Websockets Tyrus Java
Ich habe WebSockets in meinem Projekt hinzugefügt, und HAProxy schaltet automatisch vom HTTP- in den Tunnelmodus, wenn der Client einen Websocket anfordert.
Mein Problem ist das: Ich muss Websocket Sitzung unabhängig von angeschlossenen Knoten abrufen. Zum Beispiel: "Ich habe 3 Benutzer mit der Anwendung verbunden. Benutzer 1 und Benutzer 2 sind mit dem Knoten A verbunden. Benutzer 3 ist mit dem Knoten B verbunden. Ein Ereignis tritt auf dem Knoten C, die Benutzer 1 und 3 erfordert Ich habe jedoch keine Node C-Sitzungen für Benutzer 1 und 2 durchgeführt. "
Ich habe versucht, eine Hazelcast verteilte Liste zum Speichern von Sitzungen bei der Benutzerverbindung (OnOpen-Methode) zu verwenden. Aber wenn ich die "add" -Methode in der Liste aufgerufen habe, wird eine HazelcastSerializationException ausgelöst, weil das Tyrus-Sitzungsobjekt nicht serialisierbar ist.
Wie kann ich mein Problem lösen?
Dank
Haben Sie versucht, eigene benutzerdefinierte Serializer-Methoden zu schreiben? http://StackOverflow.com/a/7290812/212224 – Mike
Ja, ich habe versucht, aber es funktioniert nicht gut. Ich versuche, Hazelcast Executor Service zu verwenden, aber es verursacht com.hazelcast.nio.serialization.HazelcastSerializationException ion: java.lang.ClassNotFoundException: com.MyTask. –