gpt4 book ai didi

web-applications - 在两个 webapps 之间共享 Ehcache

转载 作者:行者123 更新时间:2023-11-28 21:45:30 25 4
gpt4 key购买 nike

我有 2 个网络应用程序,一个管理网络应用程序,以及实际的应用程序网络应用程序本身。两者共享对 mysql 存储的访问,Ehcache 用于缓存用户详细信息,以防止每个 REST API 请求对后端的用户查找命中。

我遇到的问题是可以使用管理应用程序(我很少添加)来更新用户凭据,比如说密码或用户名,或者更改一些授权级别等。现在当发生这种情况时,我需要用户使缓存失效或清除,以便主 web 应用程序可以在用户查找时访问数据库,将新用户的详细信息放入缓存中。

目前会发生这种情况,但缓存的清除对于主客户端 web 应用程序是不可见的。

如何在两个 web 应用程序之间共享一个 ehcache(同时托管在 jetty 或 tomcat 中)?我目前正在使用 Jetty,但打算切换到 Tomcat。

我正在使用 Spring 3、Jersey、Hibernate、MySQL 和 Google Ehcache 注释。

感谢您的帮助。

最佳答案

这里有几个选项:

  • 您可以使用 JGroups将您的应用程序加入一个通知组,然后通知特定的缓存条目更新/失效。因此,在收到此类通知后,您的主要Web 应用程序将更新其本地 EhCache 条目。
  • 您可以添加Terracotta分布式缓存作为 EhCache实现(它实际上并没有改变你的代码,因为它只是插入 EhCache API 后面)。然后你的 EhCache 变成分布式的,所以在您的管理 Web 应用程序中所做的更改对您的实际用户可见网络应用程序。 注意: Terracotta 需要商业许可。
  • 您可以使用 MemCached 而不是使用 EhCache允许
    在多个应用程序之间有一个共同的缓存。所以你的改变管理网络应用程序对您的实际网络应用程序可见。参见 MemCached
    tutorial

关于web-applications - 在两个 webapps 之间共享 Ehcache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275370/

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