gpt4 book ai didi

java - 如何在WAS集群中的两台不同服务器上触发代码?

转载 作者:行者123 更新时间:2023-12-02 08:32:20 27 4
gpt4 key购买 nike

我在 Web 应用程序中有一个管理页面可以重置缓存,但它仅重置当前 JVM 上的缓存。

Web 应用程序作为集群部署到两个 WAS 服务器。

有什么方法可以优雅地让每台服务器上的“清除缓存”按钮触发两个 JVM 上的方法吗?

编辑:最初的开发人员只是编写了一个包含 HashMap 的单例作为有问题的缓存。轻量级并且(以前)可以很好地满足要求。它将从六个或七个 Web 服务中提取的内容缓存指定的时间。

编辑:整个应用程序有三页,因此优雅的解决方案很可能是最轻量的解决方案。

最佳答案

由于缓存位于应用程序内部,因此您需要提供一个接口(interface)来在应用程序中清除缓存。 Quotidian 说使用 JMS 队列。这是行不通的,因为假设您有集群 MQ 队列,则只有一个实例会接收消息。

如果您想重用相同的实现,那么唯一的方法就是编写一些您能够在实例级别进行交互的 JMX。

如果没有,您可以使用内置的 WAS 缓存(启用了 JMX)或使用像 ehcache 这样的分布式缓存。

过去,我创建了一个子类 LinkedHashMap,它使用 JBOSS JGroups 链接到网络上的所有实例。 。当然,重新发明轮子总是痛苦的。

关于java - 如何在WAS集群中的两台不同服务器上触发代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998850/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com