Skip to content

整合springboot,http,ftp,rabbitmq,quartz等常用功能,配合vue搭建前端,用作知识积累。http和ftp均采用连接池的方式,优化文件上传和下载的性能。RabbitMQ实现了各种exchage。结合spring aop,logback特性,实现文件或消息自动失败回传。便于实用选型。

License

Notifications You must be signed in to change notification settings

shaohaikkk/file-message-server

 
 

Repository files navigation

集合http,ftp,rabbitmq的文件与消息系列服务,归纳优化各种写法,整理出优雅的写法,提高程序性能好,学习之余给业务开发提供方便。

使用IDEA开发,基于alibaba编程规范,配置编辑器的注释模块

######方法注释模板

template text:
**
 * description: $description$
 *
 * @param $param$
 * @return $return$
 */
 
param参数表达式:
groovyScript(
    "def commonResult=''; 
    def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); 
    for(i = 0; i < params.size(); i++) {
        if (i == 0) {
            commonResult += params[i];
        } else {
            commonResult += '\\n' + ' * @param ' + params[i];
        }
    }; 
    return commonResult ", methodParameters())
PS: 按照idea自定义的快捷键可以迅速生成方法注释,@throws的注释需要手动添加

项目启动方式

  1. 在message-manager-vue目录,通过命令行窗口执行:npm run serve, 可访问web页面: http://localhost:8090/#/
  2. 后台启动需要预先安装rabbitmq,redis,mysql,ftp服务,修改yml中对应的配置
  3. 依次启动eureka,web-server,msg-consumer(采用feign调用),gateway-server,访问注册中心:http://localhost:9761/

更新记录

1. 2019-12-22 完成RestTemplate的服务开发,做了基本测试
2. 2019-12-23 完成HttpRestTemplate的服务开发,优化小文件下载,整合HTTP连接池,实现大文件的多线程分割下载,做了基本测试
3. 2019-12-23 完成FTP服务的开发,整合FTP连接池,做了基本测试
4. 2020-01-01 完成rabbitmq服务的开发,做了基本测试,分发模式的理解,可阅读官方文档RabbitMQ Tutorials
5. 2020-01-02 参考zhuma的博客规划了项目的日志打印和异常分类处理(非常值得借鉴)
6. 2020-01-05 完成项目打包的总结,放在resources/summaries中
7. 2020-01-12 完成spring hystrix和内置tomcat组件的参数调优的小结,放在resources/summaries中
8. 2020-02-27 完成SSH服务和WebScoket服务的开发,使用自定义线程池,测试中
9. 2020-03-13 开始使用logback的自定义线程日志sift特性,spring的close事件,整合quartz,实现通用的文件失败重传
10. 2020-03-30 完成通用的文件失败重传,同步代码仓库到码云,自测试通过
11. 2020-04-03 完成spring,mybatis,druid动态数据源切换,分布式id,可以访问监控页面:http://localhost:9012/druid/sql.html
12. 2020-04-06 完成mybatis自动生成代码,实体注释
13. 2020-04-12 完成项目的maven多模块改造
14. 2020-04-14 开始项目的spring-cloud化,逐步引入功能
15. 2020-04-27 完成spring eureka,gateway,feign,hystrix的引入,以及前后端的初步打通
16. 2020-04-30 项目的summaries中放着项目实践中的相关总结,同步于博客园
17. 2020-05-03 完成基于easy-excel的数据导入,增加异常提醒和前后端面接口数据的兼容
18. 2020-05-04 完成zookeeper的引入,测试可重入锁和基本API
19. 2020-05-17 完成基于mybatis,druid的动态数据源,自动分表功能,自测试通过
20. 2020-05-20 完成多线程分段任务处理归并的业务抽象,自测试通过
21. 2020-06-08 完成id生成器tinyid的引入修改,自测试通过
22. 2020-06-11 完成rabbitmq服务API的优化调整,使用更加灵活的日志定制写法,需关注logback新版本的问题issue

参考了众多博主的帖子,按照实际使用做了调整,一并感谢,共勉

  1. SpringBoot的restTemplate整合HttpClient连接池及配置
  2. Java8环境下使用restTemplate单/多线程下载大文件和小文件
  3. java.util.concurrent.ThreadFactory 实例讲解
  4. Springboot项目搭建有ftpClientPool的Ftp工具类
  5. git项目ftpClientPool
  6. springboot快速启动插件ftp篇-连接池
  7. Windows 下安装RabbitMQ服务器及基本配置
  8. Restful Api写法心得之三《返回值篇》
  9. Hystrix使用说明,配置参数说明
  10. Java线程池最佳实践
  11. SpringBoot与JUnit+Mockito 单元测试
  12. 一次logback多线程调优的经历
  13. Logback - SiftingAppender
  14. 自定义logback触发器策略进行日志滚动
  15. spring-boot-2.0.3之quartz集成,最佳实践
  16. Datasource动态切换
  17. 实现mybatis未知个数数据源动态切换
  18. mybatis拦截器设置分布式id(雪花算法id)
  19. Native Operating System and Hardware Information
  20. Mybatis generator生成工具简单介绍
  21. springcloud项目搭建(Finchley.RELEASE版)
  22. Vue中使用websocket的正确使用方法
  23. vue的webpack代理websocket配置
  24. logback自定义logger的java代码
  25. logback运行时动态创建日志文件

*** 待续...

About

整合springboot,http,ftp,rabbitmq,quartz等常用功能,配合vue搭建前端,用作知识积累。http和ftp均采用连接池的方式,优化文件上传和下载的性能。RabbitMQ实现了各种exchage。结合spring aop,logback特性,实现文件或消息自动失败回传。便于实用选型。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 93.0%
  • Vue 5.6%
  • JavaScript 1.3%
  • HTML 0.1%