导航菜单

lof-clover分布式使命调度体系

1、clover分布式调度介绍

clover分布式使命调度是彻底运用Java技能自主开发

特色如下:

1、防单点故障

2、job可布置多台,但使命调度时,只要一台参履行。假如一台下线,

clover挑选其他已在zookeeper注册job来履行。

3、可办理监控程序 ,相关担任人的job不可用会发送邮件告诉

4、供给办理后台,可手动中止使命,设置使命履行频率、康复策

略。人工干预指定哪些job来作业,可检查使命履行进展、使命履行失利时会收到报警并记载日志。

5、履行中的使命,但未履行完结,不会再次调度使命

6、支撑灾祸重现,server端不可用,但client端注册job信息会存储到暂时DB中,当server重启后当即去读暂时DB并履行相应job

7、job支撑LOCAL、REMOTE形式以及ADD、UPDATE、DELETE操作

8、支撑动态创立job、spring配置文件和注解方法注册job

9、能够查询一切运转报错日志查询

10、办理后台能够创立、修正、删去job

2、 整体结构剖析

3、 整体结构剖析-体系流程图

4、 技能-项目结构

5、 触及技能

MongoDB集群:担任存储clover一切数据信息,最初想考虑运用LevelDB,但不便利办理,Redis彻底抛弃了,理由是关于频频写操作功能下降、总有衔接超时

ZK集群:担任server和client发动注册信息,一切server、client信息都是有读写操作权限,意图避免被别人或程序修正

ZeroMQ:担任server和client音讯通讯&后台办理页面创立、修正、删去job通讯

运用ZeroMQ的理由:便是快,便是那么固执,流式技能结构storm运用,未来会考虑运用Spark的akka音讯通讯结构

Monitor:担任逝世心跳检测,监控server、client端,运用Java Timer完成

后台办理页面:bootstrap +jsp+h狸窝全能视频转换器ighlof-clover分布式使命调度体系charts

Spring:从头界说spring的xsd标签以及Annotation注解方法,注册job

Snappy:通讯音讯压缩方法,削减网络数据传输带宽

Curator:监听ZK数据包改变,并坚持到内存中,便利程序快速获取server和client端信息

Quartz:根据quartz重写底层守时使命调度,考虑处理各种使命履行规矩问题,而挑选quartz来调度使命

6、clover运用

6.3、 项目中界说ClientJobClass

6.4、 非spring项目运用-发动clover-client

6.5、 非spring项目运用-发动job

6.6、 spring项目运用-发动clover-client

6.7、spring项目运用-发动clover-client

7、后台办理页面

7.1、主页面

7.2、zk办理页面

7.3、job办理页面

7.4、联系人办理页面

7.5、日志办理页面

8、功能剖析

8.1、clover server压力

Server端只担任使命守时履行和分发到指定client端,因为运用了quartz,server端在守时轮训履行使命以及解析守时使命时刻方面,对功能压力削减了许多

Server端分发音讯,运用zeromq非堵塞方法发送音讯给指定client端,现在布置两台服务器彻底担任一切功能压力lof-clover分布式使命调度体系

Server端支撑集群布置,每次client发送音讯随机Hash到某一台server服务器

当一切的server都不可用,为了不影响client的运用,将会把clientjob信息存储到暂时DB中,此时还会发送邮件报警给相关server担任人,server当即重启后,会把一切暂时DB中数据读取并履行,此时client能够持续收到音讯并履行事务逻辑

Server端监听一切client端ZK音讯后放入内存中,当client端zk数据信息发送改变后,才修正内存数据,这样能够供给server端获取client端zk信息速度,也减轻了zk不断被拜访的压力

8.2zk压力

俺lof-clover分布式使命调度体系诚心没啥压力,俺是一个大集群,你们这些大爷和土豪就每次发动容器时分将初始化信息放到我这边,而当你们数据信息发生改变(修正节点数据、节点数据不可用),监听者才会拜访俺,其实想想你们没事 必定不会常常改变数据滴,(*^__^*),不过 当你们挂了 或许封闭应用程序时分,我会把你们悉数删去滴,这就会糟蹋伦家点时lof-clover分布式使命调度体系刻和力气吧

8.3MongoDB

8.4zeromq

8.5zeromq push/pull形式

二维码