电商PaaS的权限管理

我要开发同款
大鱼头2023年10月15日
79阅读
所属分类 PC网站零售电商电商

作品详情

1. 围绕“谁允许/禁止对什么东西做什么操作”,设计了以用户为核心包含用户组,角色的用户体系,以及基于RestFul风格的权限体系,向外提供了权限配置和匹配的能力。
2. 万物皆可对象化,基于对象设计了一套数据共享规则,支持配置对象的哪些数据共享给哪些人,其中数据来源和共享目标是基于组织架构和角色,同时可配置自定义的数据筛选条件。
3. 鉴于权限为最基础模块,鉴权性能必须达到最优,通过SQL优化,索引建立,Redis缓存设计,管道批量处理,最后到本地缓存,将一开始大数据量的秒级响应,降到平均22ms左右。
4. 利用多线程拆分大数据量的资源授权接口进行并发处理,降低耗时。
5. 引进RabbitMQ,接收外部消息,处理一些异步耗时任务,如企业初始化的角色权限拷贝。
6. 改造Spring Cache缓存体系,实现本地+Redis的二级缓存,减少网络IO。
7. 设计模式用到:建造者模式Builder,工厂模式StrategyFactory,静态代理类Proxy,装饰器模式CacheWrapper等等。
8. 自定义数据鉴权注解ShareRuleAuthenticate,操作日志注解OperationLog,响应式编程PermissionSdkCache,异步任务处理AsyncTaskManager,定时任务刷新StaffCacheRefreshSchedule,基于事件编程AuthEventPublisher。
9. Redis使用:String(有自定义对象高低位存储),Set,分布式锁,管道批量。
10. 使用mock编写单元测试和集成测试,使用lua脚本和wrk压测接口性能。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论