项目用的主要后台框架,springboot、nacos、mybatis、shiro1.4.0、ehcache2.8.8。
具体配置过程就不多说了,主要记录一下遇到的问题。测试过程中发现授权信息能够同步,而session信息始终为空。后来查看ehcache日志发现,session已经同步到其他服务器集群上,
但是立马又从缓存中移除了。最终定位与replicateUpdatesViaCopy参数有关,默认此参数为true,但我不小心配置为false了。
replicateUpdatesViaCopy true|false 直接将更新之后的对象复制到集群中的其他缓存(true); 但是为false时不会复制,而且其他集群还会把对应的缓存记录删除。
分析发现,由于session更新比较频繁,每个请求都会更新session(最后访问时间)。导致集群下的其他应用的对应session被删掉了。改为true就正常了。