`

clover分布式任务调度系统

阅读更多

1、clover分布式调度介绍

 

clover分布式任务调度是完全使用Java技术自主开发

特点如下:

1、防单点故障

2job可部署多台,但任务调度时,只有一台参执行。如果一台下线,

clover选择其他已在zookeeper注册job来执行。

3、可管理监控程序 ,相关负责人的job不可用会发送邮件通知

4、提供管理后台,可手动停止任务,设置任务执行频率、恢复策

略。人工干预指定哪些job工作,可查看任务执行进度、任务执行失败时会收到报警并记录日志。

5、执行中的任务,但未执行完成,不会再次调度任务

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

7job支持LOCALREMOTE模式以及ADDUPDATEDELETE操作

8、支持动态创建jobspring配置文件和注解方式注册job

9、可以查询所有运行报错日志查询

10、管理后台可以创建、修改、删除job

 

 

2、 总体框架分析

 



 

 

3、 总体框架分析-系统流程图

 

               

 

4、 技术-项目结构

 


 

 

 

5、 涉及技术

 

MongoDB集群:负责存储clover所有数据信息,当初想考虑使用LevelDB,但不方便管理,Redis完全放弃了,理由是对于频繁写操作性能下降、总有连接超时

ZK集群:负责serverclient启动注册信息,所有serverclient信息都是有读写操作权限,目的防止被他人或程序修改

ZeroMQ:负责serverclient消息通信&后台管理页面创建、修改、删除job通信

使用ZeroMQ的理由:就是快,就是那么任性,流式技术框架storm使用,未来会考虑使用Sparkakka消息通信框架

Monitor:负责死亡心跳检测,监控serverclient端,使用Java Timer实现

后台管理页面:bootstrap +jsp+highcharts

Spring:重新定义springxsd标签以及Annotation注解方式,注册job

Snappy:通信消息压缩方式,减少网络数据传输带宽

Curator:监听ZK数据包变更,并保持到内存中,方便程序快速获取serverclient端信息

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端,由于使用了quartzserver端在定时轮训执行任务以及解析定时任务时间方面,对性能压力减少了很多

Server端分发消息,使用zeromq非阻塞方式发送消息给指定client端,目前部署两台服务器完全胜任所有性能压力

Server端支持集群部署,每次client发送消息随机Hash到某一台server服务器

当所有的server都不可用,为了不影响client的使用,将会把clientjob信息存储到临时DB中,此刻还会发送邮件报警给相关server负责人,server立即重启后,会把所有临时DB中数据读取并执行,此刻client可以继续收到消息并执行业务逻辑

Server端监听所有clientZK消息后放入内存中,当clientzk数据信息发送变化后,才修改内存数据,这样可以提供server端获取clientzk信息速度,也减轻了zk不断被访问的压力

 

 

8.2zk压力

 

 

俺真心没啥压力,俺是一个大集群,你们这些大爷和土豪就每次启动容器时候将初始化信息放到我这边,而当你们数据信息发生变化(修改节点数据、节点数据不可用),监听者才会访问俺,其实想想你们没事 肯定不会经常变更数据滴,(*^__^*),不过 当你们挂了 或者关闭应用程序时候,我会把你们全部删除滴,这就会浪费伦家点时间和力气吧

 

 

8.3MongoDB

 


 

8.4zeromq

 


 

 

8.5zeromq push/pull模式

 

2
2
分享到:
评论
9 楼 lee3836 2015-11-18  
求源码,大牛
8 楼 luxianping 2015-08-03  
      大神   git上找不到了  求共享
7 楼 Stark_Summer 2015-02-05  
Stark_Summer 写道
james_lover 写道
开源了吗?最近更好再找分布式调度系统,
kettle的任务调度实在是太差了。
我在考虑给kettle加个分布式调度系统。用zookeeper来管理任务及任务依赖。
用fabric在浏览器上画任务流,提供任务调度管理,就像用kettle客户端一样,能支持任务单个执行,任务跳过。任务重试。任务暂停。

您好,目前我开发这个版本是为公司做的,后续我会做个分支专门开源的,使用技术,必须开源代码,请放心。

看这个你的这个架构 应该挺复杂的,我这边现在支持动态创建定时任务,使用spring注解方式创建定时任务,还有通过控制来删除或者停止任务
6 楼 Stark_Summer 2015-02-05  
lianglaiyang 写道
能不能把源码发出来?
我在考虑给kettle加个分布式调度系统。用zookeeper来管理任务及任务依赖。
用fabric在浏览器上画任务流,提供任务调度管理,就像用kettle客户端一样,能支持任务单个执行,任务跳过。任务重试。任务暂停。

您好,目前我开发这个版本是为公司做的,后续我会做个分支专门开源的,使用技术,必须开源代码,请放心。
5 楼 Stark_Summer 2015-02-05  
james_lover 写道
开源了吗?最近更好再找分布式调度系统,
kettle的任务调度实在是太差了。
我在考虑给kettle加个分布式调度系统。用zookeeper来管理任务及任务依赖。
用fabric在浏览器上画任务流,提供任务调度管理,就像用kettle客户端一样,能支持任务单个执行,任务跳过。任务重试。任务暂停。

您好,目前我开发这个版本是为公司做的,后续我会做个分支专门开源的,使用技术,必须开源代码,请放心。
4 楼 lianglaiyang 2015-02-05  
能不能把源码发出来?
3 楼 james_lover 2015-02-04  
开源了吗?最近更好再找分布式调度系统,
kettle的任务调度实在是太差了。
我在考虑给kettle加个分布式调度系统。用zookeeper来管理任务及任务依赖。
用fabric在浏览器上画任务流,提供任务调度管理,就像用kettle客户端一样,能支持任务单个执行,任务跳过。任务重试。任务暂停。
2 楼 Stark_Summer 2015-02-04  
semmy 写道
看起来挺酷的

还是以实用为主吧,最近还在苦逼优化和改造呢
1 楼 semmy 2015-02-04  
看起来挺酷的

相关推荐

    基于大数据的分布式文件系统技术研究.pdf

    - 分布式系统:一种由多个计算节点组成的系统,这些节点可以是个人计算机、服务器或者其他设备,它们相互协作以完成共同的任务。 - 分布式开发:是在分布式系统基础上进行的软件开发过程,强调多地点团队的合作、...

    面向大数据分析的分布式文件系统关键技术.pdf

    文章的关键词“分布式”、“分布式系统”和“分布式开发”都指向了这一领域,涉及技术的各个方面和应用场景。 文章主要探讨了大数据时代数据存储和处理技术的发展,以及传统分布式文件系统在可扩展性、可靠性和性能...

    Clover 强大的任务栏管理器

    Clover,这个名字可能对许多人来说并不陌生,它是一款功能强大的任务栏增强工具,旨在为Windows用户提供类似于谷歌任务栏的体验,尤其是在Windows 8系统上,它能带来极大的便利性。这款软件的核心价值在于它的多标签...

    Clover DX ETL

    - **定时任务调度**:用户可以设置定时任务,让数据作业自动执行,无需人工干预。 - **事件驱动处理**:支持基于事件触发的数据处理,例如当某个数据源发生变化时自动启动相应的处理流程。 - **错误处理机制**:具备...

    15款clover主题

    Clover是一款广受欢迎的引导加载程序,主要用于在非Apple硬件上安装和运行macOS系统,被称为“黑苹果”(Black Apple)系统。它的主要功能是让非Apple认证的硬件能够识别并加载macOS的安装镜像,使得用户可以在非Mac...

    免改bios,Clover让老电脑从NVME_SSD启动引导,倒计时不显示,不能自动进系统解决方法

    免改bios,Clover让老电脑从NVME_SSD启动引导方法 倒计时不显示,不能自动进系统解决方法

    Clover 安装包

    Clover是一款针对Mac系统的引导加载器,主要用于非Apple官方硬件上的Mac OS X或macOS(通常称为Hackintosh)安装。这个“Clover安装包”是专门为在非Apple计算机上搭建Hackintosh环境而设计的,其版本号为2.3k,r...

    黑苹果系统macOS High Sierra 10.13.6 17G65 With Clover 4596.torrent.zip

    标题"黑苹果系统macOS High Sierra 10.13.6 17G65 With Clover 4596.torrent.zip"表明这是一款专为非苹果硬件安装的macOS High Sierra操作系统,版本号为10.13.6,补丁号17G65,且集成了Clover引导工具的版本4596。...

    java单元测试篇:使用clover为java代码的junit测试做覆盖率分析.pdf

    接下来,需要在 build.xml 文件中添加 Clover 任务,指定 Clover 的 classpath 和扩展包的位置。 构建 Java 源代码与 JUnit 单元测试代码 首先,需要创建一个 Java 项目目录,例如 sincky,然后在其中创建 src ...

    setup_clover_3.1.3.8251

    "setup_clover_3.1.3.8251"是一个软件安装程序,它旨在改造Windows操作系统中的任务管理器,使其拥有类似Google Chrome浏览器的界面和功能特性。这个过程通常被称为“Clover化”任务管理器,因为它引入了Clover这款...

    Clover5.1.3

    首先,Clover是一个引导加载器,它的主要任务是帮助非苹果硬件(即采用非苹果官方认证的硬件构建的黑苹果系统)成功启动MacOSX系统。它弥补了这些非苹果硬件与苹果操作系统之间的兼容性问题,使得用户能够在非苹果...

    解决安装或者升级win10后,直接进win系统,不进clover的问题

    对于新版clover无效,请不要下载。事实上你只要下载对应版本的clover,然后替换EFI下的相应文件即可。解决安装或者升级win10后,直接进win系统,不进clover的问题

    Clover v2.4k r4093 PKG

    Clover的主要任务是帮助非苹果官方硬件配置的用户成功引导macOS操作系统。"v2.4k r4093"表示这是Clover的2.4k版本,其中的"r4093"代表这个分支或修订版的编号,通常意味着它是经过多次改进和修复后的稳定版本。 ...

    clover配置教程.zip

    本篇教程将深入探讨Clover配置的详细步骤,帮助用户在自己的电脑上成功安装并优化黑苹果系统。 首先,我们需要了解Clover的基本概念。Clover是基于UEFI的引导程序,它模拟了苹果原生的EFI环境,使得macOS能够在非...

    clover[四叶草]

    黑苹果引导,clover,内含clover镜像和模板。黑苹果引导,clover,内含clover镜像和模板。黑苹果引导,clover,内含clover镜像和模板。黑苹果引导,clover,内含clover镜像和模板。黑苹果引导,clover,内含clover...

    CLOVER10.11.2U盘安装MAC系统的方法教程

    根据提供的文件内容,本文将详细解释CLOVER10.11.2 U盘安装MAC系统的具体步骤及注意事项,并普及相关的黑苹果知识。 首先,CLOVER10.11.2是用于在个人电脑上安装MacOS的启动引导程序,这类安装通常被称为黑苹果。...

    Clover Configurator.zip

    《Clover Configurator:黑苹果系统的得力助手》 在苹果电脑的世界里,"黑苹果"(Hackintosh)是指在非苹果硬件上安装并运行Mac OS X或macOS的系统。这种操作通常需要对计算机硬件有深入理解,并且需要一些特殊工具...

    cloverETL实例

    CloverETL是一款强大的数据集成工具,主要用于数据转换和数据加载任务。在IT行业中,它以其易用性、高效性和可扩展性而受到广泛的赞誉。本实例深入探讨了CloverETL在实际项目中的应用,提供了极具价值的参考。 1. *...

    原版CLOVER 4895 EFI

    **CLOVER 4895 EFI:引导macOS与黑苹果系统的关键** CLOVER 4895 EFI是一个专为macOS和"黑苹果"(Hackintosh)系统设计的引导加载器,它允许非Apple硬件运行macOS操作系统。这个版本的CLOVER基于2019年的4895版本,...

Global site tag (gtag.js) - Google Analytics