项目简介
本项目是基于Spring Boot和Spring Cloud的分布式任务调度系统,采用微服务架构,结合Spring Cloud功能实现服务注册与发现、客户端负载均衡、网关组件等功能。同时集成MySQL、Redis、RabbitMQ等多种中间件,支持分布式任务调度、分布式锁、消息队列等功能,提供高效、可靠的任务调度解决方案。
项目的主要特性和功能
核心依赖
- 开发框架:Spring Boot 2.5.7
- 微服务框架:Spring Cloud 2021
- 安全框架:Spring Security + Spring OAuth 2.0
- 分布式任务调度:XXL - JOB
- 数据库支持:MySQL
- 持久层框架:MyBatis Plus
- 消息中间件:Redis、RabbitMQ
- 数据库连接池:Druid
- 服务注册与发现:k8s svc
- 客户端负载均衡:k8s svc
- 网关组件:Spring Cloud Gateway
- 日志管理:Logback
- 分布式事务:Seata
- 分布式锁:Redisson
系统架构图
模块说明
- common - backend - cloud:系统公共模块
- common - component:系统公共模块
- common - auth:授权
- common - core:公共工具类核心包
- common - feign:服务间远程调用
- common - db:动态数据源包
- common - log:日志模块
- common - mybatis:mybatis扩展封装
- common - rabbitmq:rabbitmq扩展封装
- common - redis:redis扩展封装
- common - swagger:接口文档
- common - gateway:网关服务[8000]
- common - visual:网关服务
- common - xxl - job - admim:分布式定时任务管理台 [5004]
- common - monitor:服务监控
- common - sentinel - dashboard:流量高可用
- backstage - center:运维后台
- backstage - api:运维后台api模块
- backstage - svc:后台系统业务处理模块[8001]
- user - center:用户中心
- user - api:用户服务api模块
- user - svc:用户服务业务处理模块[8002]
- script:脚本
- sql:sql脚本
- kubermetes:yaml
安装使用步骤
1. 环境准备
- JDK 1.8+
- Maven 3.6+
- MySQL 5.7+
- Redis 5.0+
- RabbitMQ 3.8+
- Kubernetes (可选)
2. 复制项目
将项目源码文件复制到本地。
3. 配置数据库
在application.yml
或application.properties
中配置数据库连接信息:
yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/your-database
username: your-username
password: your-password
4. 配置Redis
在application.yml
或application.properties
中配置Redis连接信息:
yaml
spring:
redis:
host: localhost
port: 6379
password: your-password
5. 配置RabbitMQ
在application.yml
或application.properties
中配置RabbitMQ连接信息:
yaml
spring:
rabbitmq:
host: localhost
port: 5672
username: your-username
password: your-password
6. 启动项目
进入项目根目录,执行以下命令启动项目:
bash
mvn clean install
mvn spring-boot:run
7. 访问系统
启动成功后,可以通过浏览器访问系统的网关服务,默认端口为8000:
http://localhost:8000
8. 部署到Kubernetes
如果需要将项目部署到Kubernetes集群,可以使用script/kubermetes
目录下的yaml文件进行部署:
bash
kubectl apply -f script/kubermetes/
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】