-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathREADME.md.bak
81 lines (53 loc) · 4.53 KB
/
README.md.bak
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# 分布式任务调度平台
分布式任务调度平台产生历程
该平台主要用来解决公司内部一些定时调度任务的管理,避免出现这个任务在那个机子运行,或者那个任务在其它机子运行从而造成任务分散,机子分散,不便于管理和分析还有升级。
所以需要对任务,机子(以后统称节点)进行统一性的管理和操作。任务管理需要很好的进行任务添加,上传,预警,升级,日志查看,任务隔离,资源释放等相关的操作。而节点需要很好的进行添加,执行任务,故障转移,节点升级,节点监控,节点预警等一系列需要考虑到和解决的问题!
# 分布式调度平台架构 #
## 整体架构图

## 任务调度状态中转图

以上的分层,每个层代表一个项目,其中
1. 应用层:目前只实现了响应式Web端(项目路径:~/ND.Web/ND.FluentTaskScheduling.Web 涉及技术:adminlte,mvc)
2. 服务层:(项目路径:~/ND.Service/ND.FluentTaskScheduling.WebApi,涉及技术:ef,autofac,仓储模式,webapi,log4net)
3. windows服务层(也叫节点层,将来需作为windows服务部署):(项目路径:~/ND.NodeService/ND.FluentTaskScheduling.NodeService,涉及技术术语:AppDomain,Quartz.net,性能计数器,心跳,任务池,命令池,监控池,扫描器...)
## 分布式任务调度平台目前实现的功能列表 ##
1. 命令管理(命令列表(编辑,查看),命令队列列表(查询,查看日志),命令队列执行日志列表(查询))
2. 任务管理(任务列表(添加,查询,开启,暂停,停止,查看日志,编辑),任务管理日志列表(查询))
3. 节点管理(节点列表(新增,查询,编辑,日志查看),节点监控组件列表(查询),节点日志列表(查询))
4. 性能分析(任务性能分析(可视化查看cpu,内存,硬盘指标),节点性能分析(可视化查看可用内存,cpu,占用空间,io读写,iis请求))
5. 用户管理(用户列表(新增,查询,编辑))
6. 登录
## Next To Do List ##
1. 实现任务分组(任务克隆)
2. 实现任务调度节点(目前任务调度暂不支持自动调度,都是在添加任务后手工指定节点)
3. 实现任务调度的负载均衡
4. 实现执行节点的故障转移
5. 实现任务调度节点集群和执行节点集群支持,从而实现高可用
6. 实现分布式任务调度web控制台能直接从平台去控制节点的启动和关闭,还有转移节点下的任务
7. 目前的存储层主要都是sqlserver,以后命令队列要换成RabbitMQ或者其它第三方的消息中间件,有待考量!
8. 目前想到的集群的实现方案是Zookeeper,类似还有Consul等方案,这个后期考量!
9. 目前的任务调度是基于quartz.net的,这个感觉需要理解corn表达式,虽然很好理解,但是想着后期能不能换成sqlserver作业调度计划里面的那种计划实现,有待后期研究。
##分布式任务调度平台部分截图##
## 登录界面

## 统计页面

## 添加任务

## 任务列表

## 任务日志

## 任务性能监控

## 命令列表

## 命令日志

## 节点列表

## 节点日志

## 节点监控
