如何将事件分发到(Wildfly)集群中的所有节点?

时间:2017-06-09 09:43:43

标签: java-ee ejb wildfly distributed-computing java-ee-7

当我的JavaEE 7 WebApp中更长时间运行的进程状态发生变化时,我想通知集群中的所有节点,以便每个节点可以通过WebSocket通知其客户端有关该更改的信息。

我正在群集环境中使用Wildfly 10。

什么JavaEE 7 API /编程模型或Wildfly服务是今天实现这一目标的最佳做法?

1 个答案:

答案 0 :(得分:3)

如果您想留在JavaEE生态系统中,那么JMS主题就是您的选择。主题就像广播频道 - 订阅它的每个消息收听者都将获得此消息的副本。在wildfly集群/域中,您需要启用JMS(使用完整配置文件或手动添加消息传递子系统),然后启用集群消息传递,最后创建一个jms主题,通知客户端将在其中写入消息。您可以在official wildfly quickstart repo中找到完整的示例 - 查看helloworld-mdbmessaging-clustering模块。
您还可以使用在java env外部运行的专用PubSub服务,让您的应用程序为某些特定事件(例如Redis或Apache camel,...)创建订阅者,但Wildfly中的消息传递很简单,适用于大多数用例。 / p>