2018年的最后一天,是结束,也是开始,2019年希望有更大的收获。大家元旦快乐!!!
前言
- 工作中经常会用到调度功能,可以依赖现有框架简单的实现一个。之前看过一些开源的调度框架比如 xxl-job,已经非常的成熟。这里也会借鉴其思想自己来学习实现一个相对简单的调度系统。
整体流程
- 项目分为 管理节点和 工作节点
- 在管理节点可以配置任务调度信息
- 启动工作节点,成功后,会向zk进行注册节点信息(可以水平扩展)
- 管理节点选用quartz进行调度,并且通过loadbalance策略选择合适的工作节点。
- 管理节点通过代理类向选择的工作节点发送RPC请求,并且提供了Ha策略,处理失败的情况
- 工作节点接收到请求后执行真正的调度业务
基础模块搭建
- common::提供通用的一些工具和相关类
- core::核心实现(包括zk、transport 等功能)
- entity::数据库和实体类相关
- manager: 管理节点(包括ha,loadbalance等功能)
- demo-executor:提供一个简单的工作节点DEMO
实现流程
- 这里会一步步的来完善我们的系统,主要包括下面几个功能
(1) springboot+quartz整合
使用quartz的集群模式
和springboot 进行整合
(2) zk 注册中心的实现
Auto Configureation
服务端启动后创建zkClient,客户端启动后也需要创建zkClient
注册服务,发现服务,监听服务的注册
(3) 高可用 客户端负载均衡
负载均衡策略
ha的策略
(4) transport层的实现
- 使用Netty实现RPC的通信
(5) 业务相关的实现
- 调度流程,日志输出等
总结
- 整体流程到这里就结束了,2019年让我们一起来学习吧!!!
- github地址已经实现了大部分功能:https://github.com/lizu18xz/faya-job
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)