|
|
hai 2 semanas | |
|---|---|---|
| .idea | hai 2 semanas | |
| schedule-consumer | hai 2 semanas | |
| schedule-embedding-api | hai 2 semanas | |
| schedule-manager | hai 2 semanas | |
| schedule-monitor | hai 3 semanas | |
| schedule-producer | hai 2 semanas | |
| .gitignore | hai 2 semanas | |
| README.md | hai 3 semanas | |
| pom.xml | hai 2 semanas |
四级调度系统是一个基于Spring Boot和Kafka的分布式任务调度系统,通过Producer-Consumer模式实现任务的生产与消费,并配备Manager模块进行实例管理和动态扩缩容。系统支持Docker容器化部署,能够根据任务积压情况和资源负载自动调整实例数量,实现高效的资源利用和任务处理。
系统由四个核心模块组成:
任务生产者模块,提供RESTful API用于创建和发送任务。
主要功能:
配置说明:
任务消费者模块,监听Kafka主题并消费任务。
主要功能:
配置说明:
管理模块,负责监控和管理解析服务实例。
主要功能:
配置说明:
Kafka监控模块,提供Topic和消费组的监控管理功能。
主要功能:
配置说明:
git clone <repository-url>
cd four-level-schedule
修改各模块的application.yml文件,配置Kafka服务器地址:
spring:
kafka:
bootstrap-servers: <your-kafka-server>:9092
修改schedule-manager/src/main/resources/application.yml,配置Docker守护进程地址:
docker:
host: tcp://<your-docker-host>:2375
mvn clean package
分别启动四个模块:
# 启动Producer
java -jar schedule-producer/target/schedule-producer.jar
# 启动Consumer
java -jar schedule-consumer/target/schedule-consumer.jar
# 启动Manager
java -jar schedule-manager/target/schedule-manager.jar
# 启动Monitor
java -jar schedule-monitor/target/schedule-monitor.jar
解析服务镜像打包:
docker build -t parse-service:latest .
通过Producer模块提供的RESTful API发送任务:
POST http://localhost:8081/api/send
测试数据
{
"topic":"schedule-topic",
"key":"1",
"message":"./examples/test1.pdf"
}
Manager模块会自动监控任务处理情况和实例状态,并根据配置的阈值进行扩缩容。
通过Monitor模块提供的RESTful API监控Kafka:
获取Topic列表(分页):
curl "http://localhost:8094/api/kafka/monitor/topics?page=1&pageSize=10"
获取Topic详情:
curl "http://localhost:8094/api/kafka/monitor/topics/test-topic"
创建Topic:
curl -X POST "http://localhost:8094/api/kafka/monitor/topics" -H "Content-Type: application/json" -d "{\"topicName\":\"new-topic\",\"partitions\":3,\"replicationFactor\":1}"
删除Topic:
curl -X DELETE "http://localhost:8094/api/kafka/monitor/topics/test-topic"
修改Topic分区:
curl -X POST "http://localhost:8094/api/kafka/monitor/topics/test-topic/partitions" -H "Content-Type: application/json" -d "{\"partitions\":5}"
获取分区消息:
curl "http://localhost:8094/api/kafka/monitor/topics/test-topic/partitions/0/messages?startOffset=0&maxRecords=10"
获取消费组列表:
curl "http://localhost:8094/api/kafka/monitor/consumer-groups"
获取消费组详情:
curl "http://localhost:8094/api/kafka/monitor/consumer-groups/group-1"
删除消费组:
curl -X DELETE "http://localhost:8094/api/kafka/monitor/consumer-groups/group-1"
所有模块都使用相同的Kafka配置,包括bootstrap-servers、序列化器等。可根据实际环境调整。
Manager模块提供了丰富的监控配置选项:
heartbeat-timeout: 心跳超时阈值min-active-instance: 最小活跃实例数max-active-instance: 最大活跃实例数task-backlog-threshold: 任务积压阈值gpu-load-threshold: GPU负载阈值server:
port: 8094
spring:
application:
name: schedule-monitor
kafka:
bootstrap-servers: 10.192.72.13:9092
consumer:
group-id: monitor-group
enable-auto-commit: true
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
four-level-schedule/
├── pom.xml # 父POM文件
├── schedule-producer/ # 任务生产者模块
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ └── resources/
│ └── test/
├── schedule-consumer/ # 任务消费者模块
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ └── resources/
│ └── test/
├── schedule-manager/ # 管理模块
│ ├── pom.xml
│ ├── doc/ # 文档目录
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ └── resources/
│ └── test/
└── schedule-monitor/ # Kafka监控模块
├── pom.xml
└── src/
├── main/
│ ├── java/
│ └── resources/
└── test/
检查Kafka服务器地址和端口是否正确,确保Kafka服务正常运行。
检查Docker守护进程是否启用,确保Docker API端口(2375)已开放。
检查Manager模块的监控配置是否合理,确保任务积压和资源负载达到阈值。
本项目采用内部许可证,未经授权不得用于商业用途。
如有问题或建议,请联系项目维护者。