老师请看看这种想法是否合理:
1.因为默认springsecurity的鉴权机制,每次都要load库,即存在性能瓶颈
2.所以我是这样打算:
- 单独有一个认证中心(放认证服务器)
- 网关里面集成鉴权服务器
- 网关在启动的时候或者懒加载,不同渠道对应角色的资源(资源、接口定义)信息
- 在用户身份认证完成之后JWT里面(都不用做特殊增强)缓存用户唯一标识和其角色组信息
- 在下一次请求进来到网关进行统一鉴权的时候,就根据用户的角色去缓存池(redis)中获取用户的全量权限信息,完成鉴权
- 针对缓存信息,我这边想在user-server哪里通过消息队列来解决缓存信息同步问题。
这样的好处在于身份认证和鉴权不用每次都去db抓全量数据,您觉得是否可行,目前我们实现的是,认证之后单个用户的认证权限信息如redis,这样不好的地方在于每个用户都要如redis,redis本身也存在瓶颈。