源码概述:-通用附件模块,基于阿里云OSS,源码包含完整一套Java开发框架附件模块(lhgx-attach):-附件存储采用阿里云OSS,二封了阿里云OSS客户端SDK,与附件模块解耦,做了一层抽象(OssClient接口),更换OSS服务器(例如MinIO)不用更改附件模块代码,只用更改pom依赖以及yml里的oss provider配置即可-整个附件模块没有文件流经过,附件的上传、下载都是通过附件模块接口返回oss相应URL,由前端对接实现,相应url都能自定义有效期,与Redis有效期同步-附件元信息保存、获取均使用了Redis缓存、多线程技术,以加快性能公共sdk(lhgx-lib)主要包含:-分布式锁注解、切面,基于Redisson-Restful、Dubbo接口日志切面、过滤器-RestTemplate配置:使用OkHttp3-接口响应封装ApiDataResponse-雪花ID生成器,单例-线程池相关:NamedThreadFactory(自定义线程名称工厂)、ThreadPoolExecutorUtils(可定制线程名称前缀、核心线程数、最大线程数、等待队列大小,默认拒绝策略:AbortPolicy)-登录用户信息获取工具类:基于请求header,由网关模块token鉴权后放入-权限校验注解、切面:支持操作、角色两个维度的权限校验-组件支持Spring自动配置、Conditional加载特性开发框架组成:-api模块:dto、vo、exception(含异常枚举,每个模块有自己的异常code区间)、dubbo、enums、constant-core模块:config、dubbo(实现)、mapper、model、service、strategy-web模块:config(swagger)、controller、exception(Controller异常统一处理)、启动类、logback、application.yml-开发框架依赖公共sdk(lhgx-lib)根据目标2000并发进行系统调优:----服务器(Ubuntu)文件句柄数调优:3000----Nginx、Tomcat、HikariCP、lettuce、PostgreSQL等线程数/连接数调优----JVM调优:主要为使用G1垃圾收集器、设置目标垃圾回收占用时间、最大堆内存等----代码里适当使用Redis缓存、RocketMQ、多线程、异步等技术手段技术栈:Ubuntu、Java 11、PostgreSQL、Redis、RocketMQ、RabbitMQ、Spring Cloud、Spring Boot、Nacos、Dubbo、阿里云OSS/ICE、Redisson、Spring Security、JWT、MyBatis-Plus、WebSocket、ApiFox

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论