我们正在开发一个应用程序,其中将包含一些基本的聊天/消息传递功能。 Web应用程序部署在Wildfly 8.x上,并使用标准的JavaEE 7库(与Spring之类的其他应用程序框架相反)我们利用Websockets完成此任务,因为我们需要推送到浏览器的功能提供。但是,我们正在将此Web应用程序部署在集群/ HA配置中。如果UserA连接到NodeA并传递一条指向连接到NodeB的UserB的消息,那么如何传输此消息?Wildfly - 单独节点上的2个Websocket之间的通信?
在单节点配置中,简单的答案是维持一个静态的Map
或List
具有所有的WebSockets和会话,和路由的基于所述消息目的地的适当的WebSocket。但是,有多个节点显然不能工作,因为静态的每个JVM都是静态的。
我们将如何去完成这个目标?是否有可能使用JMS并让每个WebSocket充当JMS侦听器?这会对资源利用率或可伸缩性和性能产生什么影响?
我们对如何解决这个问题感到有点不知所措,并且非常感谢您提供的任何建议。
不确定它会如此之快...... – Gab
+1为简单起见;) – Gab
尽管这样做会起作用,但性能和可伸缩性会非常糟糕。更不用说它将需要不断地轮询数据库以获取新消息。 – Shadowman