Elastic-Job介绍
官网地址: http://elasticjob.io/index_zh.html
Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。
Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务。
Elastic-Job-Cloud使用Mesos + Docker的解决方案,额外提供资源治理、应用分发以及进程隔离等服务。
支付中心的对账任务采用了Elastic-Job-Lite实现。看了一些资料发现Elastic-Job是基于quztar和zookeeper封装的。有兴趣的可以去看看quztar。
概念理解
1.分片的概念:将一个任务拆分成多个独立的任务,类似于分工的概念
2.作业高可用:可以持续向外界提供稳定服务,Elastic-Job-Lite可将分片总数设置为1,使用多于1台服务器来提供服务来保证作业以1主N从的状态执行。
3.最大限度利用资源:分片数量大于服务器数量(倍数),框架会动态分配分片项,合理利用分布式资源。
Notes:作业一旦创建则不能修改作业名称,如果修改名称将视为新的作业。作业名称节点下又包含4个数据子节点,分别是config, instances, sharding, servers和leader。
SpringBoot整合
使用spring整合Elastic-Job-Lite需引入依赖:Elastic核心包,spring整合包以及zookeeper。