热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

quartz集成到springboot_Springboot+SpringCloud项目脚手架

spring-cloud-plus系统介绍spring-cloud-plus是以spring-cloud-alibaba为基础并整合一些常用框架的分布式基础开发平台。项目以组件模块

spring-cloud-plus

系统介绍

spring-cloud-plus 是以spring-cloud-alibaba为基础并整合一些常用框架的分布式基础开发平台。

项目以组件模块的方式构建,实现项目模块可插拔组装。工作中遇到的一些常用框架,我都会整合到此项目,并持续更新。

目标

- 成为一个简单易用、快速高效、功能丰富、安全稳定的分布式项目脚手架。

- 让每个人都可以独立、快速、高效地开发一套分布式项目!

技术栈

- 基础:springboot + springcloud

- 持久化:MybatisPlus

- 连接池:Druid

- 数据库:Mysql

- 项目构建:Maven

- API网关: Gateway

- 日志:Logback

- 注册、配置中心: Nacos

- 服务调用: Feign + Ribbon

- 熔断、降级:Sentinel

- 分布式事务:Seata

- 分布式锁:Redisson

- 鉴权: Shiro + jwt-token

- 缓存: Redis、springCache

- 工作流:Activiti

- 定时任务: Quartz

- 消息中间件:ActiveMq

- 文件操作:FastDFS、EasyExcel

- 搜索存储引擎:Elasticsearch

- 接口文档:Swagger、knife4j

- 应用监控:spring-boot-admin

- 前置负载:Nginx

- 链路追踪:Skywalking

- 项目部署:docker-compose

技术架构图
c784e03550d04d5787e48faf5f47950b

组件模块

| 模块 | 描述 | 功能 |

| cmpt-base | 基础模块 | 项目所必须的依赖包和配置和基础类 |

| cmpt-core | 核心模块 | 项目公共的工具类等 |

| cmpt-cloud | 分布式模块 | 注册、配置中心、分布式事务等 |

| cmpt-rbac | 鉴权模块 | RBAC鉴权模型,用户、角色、权限分配等 |

| cmpt-cache | 缓存模块 | redis集群、redisson分布式锁、springcache注解式缓存 |

| cmpt-quartz | 定时调度模块 | quartz动态定时任务,并持久化到mysql数据库 |

| cmpt-activiti | 工作流模块 | activiti整合,及请假Demo |

| cmpt-notice | 通讯模块 | 邮件、短信、websocket等 |

| cmpt-file | 文件模块 | 文件上传、下载、预览,Excel导入导出等 |

| cmpt-es | 搜索引擎模块 | elasticSearch 搜索引擎整合 |

| cmpt-activemq | 消息模块 | 消息的发送和消费 |

| cmpt-log | 日志模块 | logback日志、操作日志记录等 |

| cmpt-flyway | 脚本执行模块 | 数据库脚本自动执行 |

| generator-boot | 代码生成模块 | mybatisPlus的代码生成工具,一键生成基础代码 |

项目模块

| 模块 | 描述 | 功能 |

| boot-admin-web | 应用监控模块 | 监控应用线程、内存、垃圾回收、配置等监控 |

| gateway-web | 网关模块 | 负责服务路由转发,可作为服务统一入口 |

| openapi-web | 开放平台模块 | 外部接口调用入口、签名鉴权等 |

| admin-web | 主项目 | 整合了所有的组件模块,启动这个模块,就可以测试所有的功能啦 |

| sub-webb | 辅助项目| 简单的cloud项目,用于测试分布式服务调用和分布式事务等 |

| sub-api | 辅助API模块| 封装feign调用,方便复用 |

文档

线上接口文档

7c86ef2e22474dd28e51c28c249bfb58

如何开始

项目启动需要设置 local环境配置:

da4ff205bad2410698ecac0cb52a7c77

所有项目模块都可以直接启动,配置信息都放在Nacos中了。如果需要修改配置地址信息等,可自己添加application.yaml然后修改,项目中提供了一份demo文件可参考:

b4f0624362104747a3febe3239ff3221

有时会报Sentinel的配置类型转换异常,需要调整JDK版本,我使用的版本是:1.8.0_231 是可以正常启动的。具体参看:

98e40dc21da048c3b03ef735e2ef5580

部署

项目中设计的一些技术服务端都是使用docker部署的,包括:mysql、redis、nacos、seata等。

项目也是用docker-compose部署的,由于平台原因,不能直接放链接,需要部署文章可以私信我。

集成功能

**核心功能:**

  • 用户权限管理:

框架:shiro +jwt,使用jwt-token作为用户身份Id;

支持承租人模式;token续期等

  • 网关:

负责服务路由转发,可作为服务统一入口

  • 开放平台:

通过签名验证方式,鉴权外部接口调用

  • 动态数据源:

动态多数据源(支持读写分离,如果只有一个数据库,可将master和slave配置成一样即可);

数据库连接密码加密;

  • 缓存:

框架:springCache、redis、redisson ;

封装redis、redisson工具类;

  • 分布式事务

框架:seata(AT模式); 集成以nacos为配置中心

  • 定时任务

框架:quartz;

quartz表结构自动生成;

业务代码动态增加定时任务;

数据持久化到Mysql数据库;

  • 分布式

注册发现中心:Nacos;

feignClient远程调用;

ribbon负载均衡、sentinel熔断降级 ;

  • 配置中心

框架:nacos; 支持配置及日志等级热更新;

  • 限流熔断

框架:sentinel;接口限流、降级、系统保护、热点数据限流、权限设置等;

规则持久化到Nacos;

  • 通讯

aliyun短信通知;

邮件通知(文本、html、附件、模板);

  • 文件

openoffice在线预览文件;

easyexcel实现Excel文件导入导出;

fastDfs文件上传、下载;

FlyingSaucer+thymeleaf实现动态模板文件转pdf打印;

  • 工作流

框架:activiti

请假流程Demo

  • 消息

框架:activeMq

支持点对点和订阅发布模式,消息持久化

  • 日志

logback日志记录,以小时为单位生成日志文件;

操作日志记录,根据配置策略规定异步生成日志;

记录请求地址、参数、返回、异常及接口耗时等并持久化到数据库默认保留30天的日志。

  • 搜索引擎

框架:elasticSearch; 分布式、RESTful 风格的搜索和数据分析引擎;

  • 工具类

1)地址ip获取工具(IpAddressUtil);

2)日期处理工具(DateUtil);

3)分布式全局唯一订单号生成、分布式全局唯一主键id生成工具(OrderNumberUtil、IdGeneratorUtil);

4)md5加密工具、AES加解密工具(Md5Util、AesHopeUtil);

5)汉字拼音生成工具(Pinyin4jUtil);

6)铭感词脱敏工具(SensitiveInfoUtil);

7)集合转换复制工具(CollectionUtil);

8)redis操作工具类、redisson锁工具类(RedisUtil、RedisLockUtil);

9)RestTemplate远程调用工具了(RestTemplateUtil);

  • 其他功能

1)统一异常处理,自定义业务异常;

2)spring-retry接口重试,自定义接口重试次数、间隔、和重试的异常;

3)AOP接口防重复提交,唯一条件:指定时间内,用户id+请求url+参数 控制唯一性;

4)实体类公共字段填充:is_deleted,version,created_by,created_time,updated_by,updated_time

5)p6spy sql日志打印,打印sql耗时、替换参数后的sql;

6)jasypt文本加解密,可用于数据库密码、redis密码、邮箱密码等加密;

7)图形验证码生成校验

**辅助功能:**

  • knife4j

接口文档、接口调试;

  • flyway

数据库脚本自动执行,只需要将sql脚本放在 /db目录下,项目启动就会自动执行脚本。

  • generator

mybatisPlus自动生成基础代码

  • druid监控

数据监控,慢sql记录等

  • springbootadmin监控

springboot应用监控,线程、内存、垃圾回收、配置等监控;

作者

名字:葫芦胡

需要项目地址的可以私信我。



推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • AstridDAO 专访:波卡稳定币黑马 BAI
    加入Pol ... [详细]
  • 服务网关与流量网关
    一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ... [详细]
  • adfs是什么_培训与开发的概念
    adfs是什么_培训与开发的概念(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候 ... [详细]
  • OWASP(安全防护、漏洞验证工具)开放式Web应用程序安全项目(OWASP,OpenWebApplicationSecurityProject)是一个组织 ... [详细]
  • 我一直都有记录信息的习惯,不知是从什么时候开始,大约是在工作后不久。如今还真有点庆幸从那时开始记了点东西,当然是电子版的,写 ... [详细]
author-avatar
放开丶那手
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有