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

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

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

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

什么 JavaEE 7 API/编程模型或 Wildfly 服务是当今实现该目标的最佳实践?

最佳答案

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

关于jakarta-ee - 如何将事件分发到(Wildfly)集群中的所有节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44454512/

相关文章:

java - 捕获多个异常并执行相同的操作

java - 服务到 worker 模式 - 将数据从 Controller 传输到 View 的最佳实践

java - 从 C++ 到 Java 的转变

java - 如何在 Wildfly 上禁用缓存

java - 通过 web 控制台向 wildfly 添加数据源

java - seam EntityHome 操作中的有线组件为 null

java - 使用 EJB/JPA 过滤功能而不是 SQL 选择

java - 关于ejb3.0定时器服务的问题

java - EJB:为什么在 JNDI 查找中会出现此错误?

server - access_log 不会更正 wildfly 8.1 服务器中的文件