熟练使用 Elastic Job系列之注册中心与节点(二)

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
数据可视化DataV,5个大屏 1个月
简介: Elastic Job是使用了zookeeper做注册中心的

系列导航:

熟练使用 Elastic Job系列之概念介绍(一)

熟练使用 Elastic Job系列之入门Demo(三)

Elastic Job是使用了zookeeper做注册中心的,那么job在zookeeper中到底都有哪些数据呢,现在,基本如图所示,接下来一一介绍。

[elastic-job-lite-springboot,log_dir event notification, dd-job, isr changenotification,  zookeeper,  admin,  elastic-job-demo-quick-demo consumers cluster,  
[zk: localhost:2181(CONNECTED)4] ls /dd-job/
Command failed:java.lang.IllegalArgumentException: Path must not end with / character[zk: localhost:2181(CONNECTED) 5] ls /dd-job[demoSimpleSpringJob]
zk:localhost:2181(CONNECTED) 61 ls /dd-iob/demoSimpleSpringJob
[zk: localhost:2181(CONNECTED) 7] [config, instances, servers, sharding, leader]  

注册中心数据结构

[zk:localhost:2181(CONNECTED)9]get/dd-job/demoSimpleSpringJob/config
"iobName":"demoSimpleSprinaJob","iobClass":"example.MyElasticJob","iobType":"SIMPLE","cron":"0/10 * * * ?","shardingTotalCount":3,"shardingItemParameters":"0\u003dA,1\u003dB,2\u003dC","jobParameter":"","fai  
over":false,"misfire":true,"description":"","jobProperties":{"job_exception_handler" :"com.dangdang.ddframe e.job.executor.handler.impl.DefaultJobExceptionHandler","executor_service_handler": "com.dangdang.ddframe iob.executor.handler.impl.DefaultExecutorServiceHandler"},"monitorExecution":true,"maxTimeDiffSeconds":-1 monitorPort":-1."iobShardinaStrateavClass":""."reconcileTntervalMinutes":10."disabled":false."overwrit
":false}
cZxid = 0xe87
ctime = Thu Jul 30 06:57:32 UTC 2020 mZxid = 0xe87
mtime = Thu jul 30 06:57:32 UTC 2020 pZxid = 0xe87 cversion = 0
dataVersion =0 aclVersion =日
ephemeralOwner = 0x0 dataLength =638
numChildren =0  

注册中心在定义的命名空间下,创建作业名称节点,用于区分不同作业,所以作业一旦创建则不能修改作业名称,如果修改名称将视为新的作业。作业名称节点下又包含4个数据子节点,分别是config, instances, sharding, servers和leader。

config节点

作业配置信息,以JSON格式存储

[zk:localhost:2181(CONNECTED)10]get/dd-job/demoSimpleSpringJob/instances
cZxid = 0xe94
ctime = Thu Jul 30 06:57:33 UTC 2020 mZxid = 0xe94
mtime = Thu Jul 30 06:57:33 UTC 2020 pZxid = 0xeac cversion =2
dataVersion =0 aclVersion =0
ephemeralOwner = 0x0 dataLength =0
numChildren =0
[zk: localhost:2181(CONNECTED)11

instances节点

作业运行实例信息,子节点是当前作业运行实例的主键。作业运行实例主键由作业运行服务器的IP地址和PID构成。作业运行实例主键均为临时节点,当作业实例上线时注册,下线时自动清理。注册中心监控这些节点的变化来协调分布式作业的分片以及高可用。 可在作业运行实例节点写入TRIGGER表示该实例立即执行一次。

[zk:localhost:2181(CONNECTED)10]get/dd-job/demoSimpleSpringJob/instances
cZxid = 0xe94
ctime = Thu Jul 30 06:57:33 UTC 2020 mZxid = 0xe94
mtime = Thu Jul 30 06:57:33 UTC 2020 pZxid = 0xeac cversion =2
dataVersion =0 aclVersion =0
ephemeralOwner = 0x0 dataLength =0
numChildren =0  
[zk: localhost:2181(CONNECTED)1

sharding节点

作业分片信息,子节点是分片项序号,从零开始,至分片总数减一。分片项序号的子节点存储详细信息。每个分片项下的子节点用于控制和记录分片运行状态。节点详细信息说明:

[zk:localhost:2181(CONNECTED)11]get/dd-job/demoSimpleSpringJob/sharding
cZxid = 0xe9b
ctime = Thu Jul 30 06:57:40 UTC 2020 mZxid = 0xe9b
mtime = Thu Jul 30 06:57:40 UTC 2020 pZxid = 0xe9e cversion =3
dataVersion =0 aclVersion =日
ephemeralOwner = 0x0 dataLength =0
numChildren =3  
子节点名 临时节点 描述
instance 执行该分片项的作业运行实例主键
running 分片项正在运行的状态
仅配置monitorExecution时有效
failover 如果该分片项被失效转移分配给其他作业服务器,则此节点值记录执行此分片的作业服务器IP
misfire 是否开启错过任务重新执行
disabled 是否禁用此分片项

servers节点

作业服务器信息,子节点是作业服务器的IP地址。可在IP地址节点写入DISABLED表示该服务器禁用。 在新的cloud native架构下,servers节点大幅弱化,仅包含控制服务器是否可以禁用这一功能。为了更加纯粹的实现job核心,servers功能未来可能删除,控制服务器是否禁用的能力应该下放至自动化部署系统。

zk:localhost:2181(CONNECTED)121 get/dd-iob/demoSimpleSpringJob/servers
cZxid = 0xe90
ctime = Thu Jul 30 06:57:33 UTC 2020 mZxid = 0xe90
mtime = Thu Jul 30 06:57:33 UTC 2020 oZxid = 0xe91 cversion =1
dataVersion =0 aclVersion =0
ephemeralOwner = 0x0 dataLength =日
numChildren =1  

leader节点

作业服务器主节点信息,分为election,sharding和failover三个子节点。分别用于主节点选举,分片和失效转移处理。

leader节点是内部使用的节点,如果对作业框架原理不感兴趣,可不关注此节点。

[zk:localhost:2181(CONNECTED)13]get/dd-job/demoSimpleSpringJob/leader
cZxid = 0xe89
ctime = Thu Jul 30 06:57:33 UTC 2020 mZxid = 0xe89
mtime = Thu jul 30 06:57:33 UTC 2020 oZxid = 0xe96 cversion =2
dataVersion =0 aclVersion =日
ephemeralOwner =0x0 dataLength =0
numChildren =2  
子节点名 临时节点 描述
election\instance 主节点服务器IP地址
一旦该节点被删除将会触发重新选举
重新选举的过程中一切主节点相关的操作都将阻塞
election\latch 主节点选举的分布式锁
为curator的分布式锁使用
sharding\necessary 是否需要重新分片的标记
如果分片总数变化,或作业服务器节点上下线或启用/禁用,以及主节点选举,会触发设置重分片标记
作业在下次执行时使用主节点重新分片,且中间不会被打断
作业执行时不会触发分片
sharding\processing 主节点在分片时持有的节点
如果有此节点,所有的作业执行都将阻塞,直至分片结束
主节点分片结束或主节点崩溃会删除此临时节点
failover\items\分片项 一旦有作业崩溃,则会向此节点记录
当有空闲作业服务器时,会从此节点抓取需失效转移的作业项
failover\items\latch 分配失效转移分片项时占用的分布式锁
为curator的分布式锁使用


相关实践学习
Github实时数据分析与可视化
基于Github Archive公开数据集,将项目、行为等20+种事件类型数据实时采集至Hologres进行分析,并搭建可视化大屏。
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
相关文章
|
5月前
|
Java 调度 Maven
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
250 0
|
3月前
|
弹性计算 Kubernetes Java
阿里云云效操作报错合集之在绑定其他主体下的k8s集群时,通过kubeconfig导入集群时,出现报错,该如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
SQL 负载均衡 监控
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(上)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目
330 0
|
12月前
|
Java API 调度
xxl-job的原理(2)—调度中心管理注册信息
xxl-job的原理(2)—调度中心管理注册信息
290 0
xxl-job的原理(2)—调度中心管理注册信息
|
Java API 调度
Elastic-Job的快速入门,三分钟带你体验分布式定时任务
Elastic-Job的快速入门,三分钟带你体验分布式定时任务
Elastic-Job的快速入门,三分钟带你体验分布式定时任务
|
运维
Elastic Job进阶--作业是如何被立即触发的
Elastic Job进阶--作业是如何被立即触发的
|
监控 安全 数据安全/隐私保护
《Elastic(中国)基础开发宝典》——集群安全配置功能大升级,单机模拟运行 Elasticsearch 8.1.2 三节点集群
《Elastic(中国)基础开发宝典》——集群安全配置功能大升级,单机模拟运行 Elasticsearch 8.1.2 三节点集群
|
存储 算法 安全
定时任务之elastic-job概述
定时任务之elastic-job概述
384 0
|
运维 算法 Java
|
SQL Java 关系型数据库
elastic-job 定时任务集成
elastic-job 定时任务集成
442 0
elastic-job 定时任务集成
下一篇
无影云桌面