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

时间:2013-08-12 22:11:52

标签: java ehcache shiro

我们的网络应用程序正在使用shiro进行身份验证。我们将会话存储在EHCache中,由文件存储支持,并使用复制来确保所有Web服务器都具有所有会话。我们使用对等复制,而不是多播配置。事情似乎大部分时间都有效。但是,有时不会复制登录或注销。

我们将看到包含以下异常的stacktraces: org.apache.shiro.session.UnknownSessionException:没有带id的会话[dc996ea4-daff-431f-946b-6a5a214f9477]

如果文件不同步,则会保持不同步。

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

1 个答案:

答案 0 :(得分:1)

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

编辑 - 仅供参考,BigMemory Max仍然是ehcache ......它只是一个“分布式ehcache”,具有额外的“堆外”内存功能......