当我的 JavaEE 7
WebApp 中运行时间较长的进程的状态发生变化时,我想通知集群中的所有节点,以便每个节点都可以依次通过 WebSocket 通知其客户端有关该更改.
我在集群环境中使用 Wildfly 10。
什么 JavaEE 7
API/编程模型或 Wildfly 服务是当今实现该目标的最佳实践?
最佳答案
如果您想留在 JavaEE 生态系统中,那么 JMS 主题是必经之路。主题就像广播 channel ——每个订阅它的消息监听器都会得到这个消息的副本。在 wildfly 集群/域中,您需要启用 JMS(使用完整配置文件或手动添加消息传递子系统),然后启用集群消息传递并最终创建一个 jms 主题,您的通知客户端将在其中写入消息。您可以在 official wildfly quickstart repo 中找到完整示例- 查看 helloworld-mdb
和 messaging-clustering
模块。
您还可以使用在 java 环境之外运行的专用 PubSub 服务,让您的应用程序创建某个特定事件的订阅者(例如 Redis 或 Apache camel,..),但 Wildfly 中的消息传递很简单并且适用于大多数用例。
关于jakarta-ee - 如何将事件分发到(Wildfly)集群中的所有节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44454512/