亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

實現一個分布式調度系統

標簽:
Java
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) 业务相关的实现
- 调度流程,日志输出等

总结

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
6390
獲贊與收藏
157

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消