shiro+ehcache+复制:登录和注销不被复制



我们的web应用程序正在使用shiro进行身份验证。我们将会话存储在EHCache中,由文件存储作为备份,并使用复制来确保所有web服务器都拥有所有会话。我们使用的是对等复制,而不是多播配置。大多数时候情况似乎都是这样。但是,登录或注销有时不会被复制。

我们将看到堆叠比赛,但以下情况除外:org.apache.shiro.session.UnknownSessionException:没有id为[dc996ea4-daff-431f-946b-6a5a214f9477]的会话

如果文件不同步,它将保持不同步。

有人建议我们为什么会看到这种行为吗?

坦率地说,我会尝试完全摆脱对等复制。。。因为它可能会出现竞争条件和并发异常,这可能会随机解释您丢失的条目。我将转向使用Bigmemory Max的更强大的分布式缓存解决方案,该解决方案最多可用于4个客户端+4GB的内存存储(http://terracotta.org/products/bigmemorymax)

编辑-仅供参考,BigMemory Max仍在缓存中。。。它只是一个"分布式ehcache",具有额外的"堆外"内存功能。。。

相关内容

  • 没有找到相关文章