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+highcharts
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端,目前部署两台服务器完全胜任所有性能压力
Server端支持集群部署,每次client发送消息随机Hash到某一台server服务器
当所有的server都不可用,为了不影响client的使用,将会把clientjob信息存储到临时DB中,此刻还会发送邮件报警给相关server负责人,server立即重启后,会把所有临时DB中数据读取并执行,此刻client可以继续收到消息并执行业务逻辑
Server端监听所有client端ZK消息后放入内存中,当client端zk数据信息发送变化后,才修改内存数据,这样可以提供server端获取client端zk信息速度,也减轻了zk不断被访问的压力
8.2zk压力
俺真心没啥压力,俺是一个大集群,你们这些大爷和土豪就每次启动容器时候将初始化信息放到我这边,而当你们数据信息发生变化(修改节点数据、节点数据不可用),监听者才会访问俺,其实想想你们没事 肯定不会经常变更数据滴,(*^__^*),不过 当你们挂了 或者关闭应用程序时候,我会把你们全部删除滴,这就会浪费伦家点时间和力气吧
8.3MongoDB
8.4zeromq
8.5zeromq push/pull模式
相关推荐
类似谷歌的任务栏,效果很不错,方便(支持Win8)
CLOVER10.11.2U盘安装MAC系统的方法教程CLOVER10.11.2U盘安装MAC系统的方法教程
对于新版clover无效,请不要下载。事实上你只要下载对应版本的clover,然后替换EFI下的相应文件即可。解决安装或者升级win10后,直接进win系统,不进clover的问题
免改bios,Clover让老电脑从NVME_SSD启动引导方法 倒计时不显示,不能自动进系统解决方法
黑苹果系统macOS High Sierra 10.13.6 17G65 With Clover 4596.torrent.zip
这是收集到的15款clover主题,适用于clover引导的黑苹果,使用方法比较简单这里不重复,分享给需要的朋友
声卡配置工具 CLOVER.x299声卡配置工具 CLOVER.x299声卡配置工具 CLOVER.x299声卡配置工具 CLOVER.x299声卡配置工具 CLOVER.x299声卡配置工具 CLOVER.x299声卡配置工具 CLOVER.x299声卡配置工具 CLOVER.x299声卡配置...
声卡配置工具 CLOVER.LGA1366.X58声卡配置工具 CLOVER.LGA1366.X58声卡配置工具 CLOVER.LGA1366.X58声卡配置工具 CLOVER.LGA1366.X58声卡配置工具 CLOVER.LGA1366.X58声卡配置工具 CLOVER.LGA1366.X58声卡配置工具 ...
Clover 是基于 Clover, rEFIt, XNU, ...使用 Clover, 你可以从 启动磁盘 面板重启进入其他操作系统 写入 与操作系统相同的 UUID 到 config.plist 修正 SMBIOS 至 standard 2.6 版本 修正 ACPI 至 标准 4.0 版本。
Clover - 4chan browser for Android Clover is a fast Android app for browsing 4chan. Clover adds inline replying, thread watching, notifications, themes, pass support, filters and a whole lot more. ...
操作系统无缝集成 Clover 通过插件的形式集成到 Windows Explorer,保留您通常的使用习惯,无需学习新的文件管理操作,马上就可以使用啦。 快如闪电的书签栏 按Ctrl+D添加当前路径,或者直接将文件夹拖入书签栏...
clover CloverETL 说明文档 只是从网上下载的一个,包括doc、bin、lib等
新版亲测可用的clover, 在mac系统安装,然后将U盘中的clover文件复制到系统盘下的EFI目录下即可。
clover最新版本4813,有需要的盆友可以下载 我试过了 很稳定。
Clover boot loader Configuration 5.2.0.1.苹果系统下对Clover的EFI config.plist进行配置的工具。
黑苹果 Clover Configurator
用于macOS或黑苹果安装引导或双系统引导文件,采用原版Clover EFI Installer 制作而成,方便未安装macOS的用户使用。 CLOVER 版本为2019年 4895 版本
MAC黑苹果clover配置详细教程
Clover Configurator Mac版是一款图形化的四叶草启动引导配置工具,Clover Configurator Mac版可以大家在MAC下非常方便地编辑设置Clover的各个选项,非常实用。 软件特色 易于安装的实用程序产生三叶草EFI配置...
EFI+TOOLS+CLOVER 用于引导黑苹果系统,从u盘启动改到硬盘启动。