点击空白处退出提示
作品详情
该项目为企业内部使用的日常办公系统。该项目主要包括员工管理、请假审批、会议审批、报销审批、票据管理模块。该项目使用sa-token作为权限认证框架,搭配JWT实现单点登录功能。数据库使用RBAC设计原则,使用activiti 7作为工作流引擎进行对应业务的审批工作,quartz搭配线程池对任务进行管理,使用redis作为缓存存储权限等常用数据,线上会议接入腾讯TRTC服务,rabbitmq实现消息分发与解耦操作。前后端消息交互使用websocket。该项目使用Docker进行部署。
项目职责:
主要负责权限设计、数据库表设计、审批流设计,参与需求探讨和接口文档的编写与更改,生产环境上项目的部署。
主要技术:
sa-token jwt redis activiti websocket vue
项目难点:
websocket连接失败
vue刷新页面会导致连接断开,致使后端出现线程安全问题,将HashMap换为ConcurrentHashMap存储连接信息,int换为AtomicInteger判断连接数。
引入activiti 7访问需要权限认证
activiti 7中内置了springsecurity,而项目中使用sa-token作为权限框架,最先采取去除依赖包EnableWebSecurity的方式,无法达到效果,随后采取配置Security拦截器的方式,所有请求都可访问,至此问题解决。
redis热点key消失导致大量请求涌入数据库
创建定时任务在token有效期内对热点key进行定时更新操作。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论