在分布式场景下,原生shiro会有一些问题:
1. session共享问题:shiro是使用session来存储认证后授权信息的,若多个服务实例之间不共享session,切换到另一个服务实例时,就需要重新登录。
2. 只有web端才有session,手机端没得。
2. 缓存数据不一致问题:首先,一般来说都会对权限做缓存,不要每次都从数据库查权限,shiro利用的是它提供的cash,使用的是本地缓存。其次,就算你每次都去数据库查,数据库一般也会做集群,各节点之间也许会存在数据不一致的问题,虽然还是能解决 O(∩_∩)O哈哈~ 反正一般都是会 在分布式场景下使用缓存来缓存授权信息,以提高系统的性能和响应速度。 |