通用附件模块

我要开发同款
Philip2024年09月18日
75阅读
开发技术系统架构、dubbo、javaspringcloudredis

作品详情

源码概述:
-通用附件模块,基于阿里云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
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论