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模式
相关推荐
- 分布式系统:一种由多个计算节点组成的系统,这些节点可以是个人计算机、服务器或者其他设备,它们相互协作以完成共同的任务。 - 分布式开发:是在分布式系统基础上进行的软件开发过程,强调多地点团队的合作、...
文章的关键词“分布式”、“分布式系统”和“分布式开发”都指向了这一领域,涉及技术的各个方面和应用场景。 文章主要探讨了大数据时代数据存储和处理技术的发展,以及传统分布式文件系统在可扩展性、可靠性和性能...
Clover,这个名字可能对许多人来说并不陌生,它是一款功能强大的任务栏增强工具,旨在为Windows用户提供类似于谷歌任务栏的体验,尤其是在Windows 8系统上,它能带来极大的便利性。这款软件的核心价值在于它的多标签...
- **定时任务调度**:用户可以设置定时任务,让数据作业自动执行,无需人工干预。 - **事件驱动处理**:支持基于事件触发的数据处理,例如当某个数据源发生变化时自动启动相应的处理流程。 - **错误处理机制**:具备...
Clover是一款广受欢迎的引导加载程序,主要用于在非Apple硬件上安装和运行macOS系统,被称为“黑苹果”(Black Apple)系统。它的主要功能是让非Apple认证的硬件能够识别并加载macOS的安装镜像,使得用户可以在非Mac...
免改bios,Clover让老电脑从NVME_SSD启动引导方法 倒计时不显示,不能自动进系统解决方法
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,且集成了Clover引导工具的版本4596。...
接下来,需要在 build.xml 文件中添加 Clover 任务,指定 Clover 的 classpath 和扩展包的位置。 构建 Java 源代码与 JUnit 单元测试代码 首先,需要创建一个 Java 项目目录,例如 sincky,然后在其中创建 src ...
"setup_clover_3.1.3.8251"是一个软件安装程序,它旨在改造Windows操作系统中的任务管理器,使其拥有类似Google Chrome浏览器的界面和功能特性。这个过程通常被称为“Clover化”任务管理器,因为它引入了Clover这款...
首先,Clover是一个引导加载器,它的主要任务是帮助非苹果硬件(即采用非苹果官方认证的硬件构建的黑苹果系统)成功启动MacOSX系统。它弥补了这些非苹果硬件与苹果操作系统之间的兼容性问题,使得用户能够在非苹果...
对于新版clover无效,请不要下载。事实上你只要下载对应版本的clover,然后替换EFI下的相应文件即可。解决安装或者升级win10后,直接进win系统,不进clover的问题
Clover的主要任务是帮助非苹果官方硬件配置的用户成功引导macOS操作系统。"v2.4k r4093"表示这是Clover的2.4k版本,其中的"r4093"代表这个分支或修订版的编号,通常意味着它是经过多次改进和修复后的稳定版本。 ...
本篇教程将深入探讨Clover配置的详细步骤,帮助用户在自己的电脑上成功安装并优化黑苹果系统。 首先,我们需要了解Clover的基本概念。Clover是基于UEFI的引导程序,它模拟了苹果原生的EFI环境,使得macOS能够在非...
黑苹果引导,clover,内含clover镜像和模板。黑苹果引导,clover,内含clover镜像和模板。黑苹果引导,clover,内含clover镜像和模板。黑苹果引导,clover,内含clover镜像和模板。黑苹果引导,clover,内含clover...
根据提供的文件内容,本文将详细解释CLOVER10.11.2 U盘安装MAC系统的具体步骤及注意事项,并普及相关的黑苹果知识。 首先,CLOVER10.11.2是用于在个人电脑上安装MacOS的启动引导程序,这类安装通常被称为黑苹果。...
《Clover Configurator:黑苹果系统的得力助手》 在苹果电脑的世界里,"黑苹果"(Hackintosh)是指在非苹果硬件上安装并运行Mac OS X或macOS的系统。这种操作通常需要对计算机硬件有深入理解,并且需要一些特殊工具...
CloverETL是一款强大的数据集成工具,主要用于数据转换和数据加载任务。在IT行业中,它以其易用性、高效性和可扩展性而受到广泛的赞誉。本实例深入探讨了CloverETL在实际项目中的应用,提供了极具价值的参考。 1. *...
**CLOVER 4895 EFI:引导macOS与黑苹果系统的关键** CLOVER 4895 EFI是一个专为macOS和"黑苹果"(Hackintosh)系统设计的引导加载器,它允许非Apple硬件运行macOS操作系统。这个版本的CLOVER基于2019年的4895版本,...