我在 Payara 服务器上实现了一个集群,其中 3 个节点(A、B 和 C)作为独立实例。我使用 HAproxy 作为负载均衡器,一切正常。
我在我的项目中添加了 WebSockets,当客户端请求 websocket 时,HAProxy 会自动从 HTTP 切换到隧道模式。
我的问题是:无论连接的节点如何,我都需要检索 websocket 会话。例如:“我有 3 个用户连接到应用程序。用户 1 和用户 2 连接到节点 A。用户 3 连接到节点 B。节点 C 上发生需要通知用户 1 和 3 的事件。但我还没有参加 Node C 用户 1 和用户 2 会话。”
我尝试使用 Hazelcast 分布式列表在用户连接处存储会话(OnOpen 方法)。但是当我在列表中调用“add”方法时,这会引发 HazelcastSerializationException,因为 Tyrus 会话对象不可序列化。
我该如何解决我的问题?
谢谢