ElasticJob 3.0.4 配置参数详解

完整梳理 Apache ShardingSphere ElasticJob 3.0.4 的三层配置体系(Java API `JobConfiguration`、Spring Boot Starter yaml、ZooKeeper 存储层 config 节点),给出全部参数的实测默认值与生效行为,并用真实命令验证 overwrite 语义、props 传参与 yaml 配置链路。

ElasticJobElasticJobApache定时调度ZooKeeper分布式Java2026/10/23

ElasticJob 3.0.4 配置参数详解

目标:完整梳理 Apache ShardingSphere ElasticJob 3.0.4 的三层配置体系(Java API JobConfiguration、Spring Boot Starter yaml、ZooKeeper 存储层 config 节点),给出全部参数的实测默认值与生效行为,并用真实命令验证 overwrite 语义、props 传参与 yaml 配置链路。所有回显均为 Ubuntu 22.04 + ZooKeeper 3.8.4 + OpenJDK 17 环境实测原文。

一、环境信息

项取值
ElasticJob 版本3.0.4(Maven Central 最新发布版)
ZooKeeper3.8.4 standalone,节点 zk1(10.89.64.10:2181)
应用节点app1(10.89.64.11),OpenJDK 17.0.20.1,JVM -Xms256m -Xmx512m
实测工具javap(反编译核对 API)、jshell(打印默认值)、zkCli.sh(核对存储层)、mvn + java(运行验证)
实测工程elasticjob-demo / elasticjob-sbdemo(复用《ElasticJob 3.0.4 安装指南》的工程骨架)

💡 阅读前提:ElasticJob 的「配置」不是单个配置文件,而是一条 Java API → ZooKeeper 存储 → 运行期读取 的链路。Spring Boot Starter yaml 只是 Java API 的声明式外壳,最终都以 JSON/YAML 形态持久化在 ZooKeeper 的 /<namespace>/<jobName>/config 节点里。因此本文以「ZooKeeper config 节点内容」作为配置生效的最终判据。

二、配置体系总览

┌────────────────────────────────────────────────────────────┐
│ 第 1 层:声明式/编程式入口                                    │
│   A. Java API:JobConfiguration.newBuilder(...) 链式构建      │
│   B. Spring Boot Starter:application.yml → 自动装配映射      │
├────────────────────────────────────────────────────────────┤
│ 第 2 层:overwrite 决定取舍                                  │
│   overwrite=true  → 本地配置写回 ZK(以本地为准)             │
│   overwrite=false → 本地配置被忽略(以 ZK 存储为准)          │
├────────────────────────────────────────────────────────────┤
│ 第 3 层:ZooKeeper 存储层(运行期唯一事实源)                  │
│   /<namespace>/<jobName>/config 节点(YAML 文本)             │
└────────────────────────────────────────────────────────────┘

运行期任何一次触发都从第 3 层读配置——这意味着:改本地代码/yaml 而不改 overwrite,对已存在的作业不生效(第五章有铁证实测)。

三、注册中心参数详解(ZookeeperConfiguration)

注册中心参数通过 new ZookeeperConfiguration(serverLists, namespace) 传入,共 8 个(javap 实测类签名):

public final class org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperConfiguration {
  public java.lang.String getServerLists();
  public java.lang.String getNamespace();
  public int getBaseSleepTimeMilliseconds();
  public int getMaxSleepTimeMilliseconds();
  public int getMaxRetries();
  public int getSessionTimeoutMilliseconds();
  public int getConnectionTimeoutMilliseconds();
  public java.lang.String getDigest();
}

构造后各参数默认值(jshell 实测回显):

serverLists=10.89.64.10:2181
namespace=default-demo
baseSleepTimeMilliseconds=1000
maxSleepTimeMilliseconds=3000
maxRetries=3
sessionTimeoutMilliseconds=0
connectionTimeoutMilliseconds=0
digest=null

逐参数说明:

参数默认值(实测)说明与调优建议
serverLists(构造必填)ZK 地址列表,集群逗号分隔:zk1:2181,zk2:2181,zk3:2181
namespace(构造必填)命名空间,即 ZK 根节点名;多套环境/多应用共用 ZK 时用它隔离
baseSleepTimeMilliseconds1000Curator 重试初始间隔(ms)
maxSleepTimeMilliseconds3000Curator 重试最大间隔(ms)
maxRetries3Curator 最大重试次数;ZK 抖动时超过次数即任务协调失败,弱网环境适当调大
sessionTimeoutMilliseconds0(未显式设置)会话超时;0 表示走连接期协商,本实测握手日志显示 negotiated timeout = 40000(ms)
connectionTimeoutMilliseconds0(未显式设置)连接超时,0 同上走默认
digestnullZK digest 认证的 user:password;ZK 开启 ACL 时必填,生产建议开启

Spring Boot Starter 中这 8 个参数一一对应 yaml 键(第四章 6.2 节有元数据实测):elasticjob.reg-center.server-lists、namespace、base-sleep-time-milliseconds、max-sleep-time-milliseconds、max-retries、session-timeout-milliseconds、connection-timeout-milliseconds、digest。

⚠️ 实测提示:sessionTimeoutMilliseconds/connectionTimeoutMilliseconds 的对象默认值是 0 而不是文档常说的 60000/15000——0 在连接时由底层兜底(实测协商为 40000ms)。若在弱网/跨机房场景要精确控制,必须显式设值。

四、作业配置参数详解(JobConfiguration)

作业参数通过 JobConfiguration.newBuilder(jobName, shardingTotalCount) 的 Builder 链式设置。3.0.4 Builder 全部方法(javap 实测):

public class org.apache.shardingsphere.elasticjob.api.JobConfiguration$Builder {
  public Builder cron(java.lang.String);
  public Builder timeZone(java.lang.String);
  public Builder shardingItemParameters(java.lang.String);
  public Builder jobParameter(java.lang.String);
  public Builder monitorExecution(boolean);
  public Builder failover(boolean);
  public Builder misfire(boolean);
  public Builder maxTimeDiffSeconds(int);
  public Builder reconcileIntervalMinutes(int);
  public Builder jobShardingStrategyType(java.lang.String);
  public Builder jobExecutorServiceHandlerType(java.lang.String);
  public Builder jobErrorHandlerType(java.lang.String);
  public Builder jobListenerTypes(java.lang.String...);
  public Builder addExtraConfigurations(org.apache.shardingsphere.elasticjob.api.JobExtraConfiguration);
  public Builder description(java.lang.String);
  public Builder setProperty(java.lang.String, java.lang.String);
  public Builder disabled(boolean);
  public Builder overwrite(boolean);
  public Builder label(java.lang.String);
  public Builder staticSharding(boolean);
  public final JobConfiguration build();
}

按功能分组的逐参数详解(默认值以第五章 ZK config 节点实测 dump 为准):

4.1 调度与分片(必填项集中地)

参数默认值说明
jobName(构造参数)(必填)作业名,即 ZK 节点名;同一 namespace 内唯一
shardingTotalCount(构造参数)(必填)分片总数;决定并行度与节点树 sharding/0..N-1 数量
cronnull(必设)cron 表达式,沿用 Quartz 语法(秒 分 时 日 月 周 [年]),内置引擎即 Quartz 2.3.2
timeZonenull触发时区;null 用 JVM 默认,跨时区部署建议显式(如 Asia/Shanghai)
shardingItemParameters''(空串)分片项参数映射,格式 0=A,1=B,2=C;execute 时经 ShardingContext.getShardingParameter() 传入
jobParameter''(空串)作业级参数(与分片无关),经 ShardingContext.getJobParameter() 传入

4.2 治理行为开关

参数默认值说明
failoverfalse失效转移:实例宕机后未完成分片由存活实例接管;开启会增加 ZK 写入与协调开销
misfiretrue错过补偿:实例因停机/繁忙错过的触发,恢复后自动补执行一次
monitorExecutiontrue执行状态监控:每次执行写 ZK(sharding 项 running 状态),是 failover 生效的前提;超大吞吐量作业可关以减 ZK 压力(关后 failover/misfire 失效)
maxTimeDiffSeconds-1最大允许的本机与注册中心时间误差(秒);-1 不校验。开启后误差超限的实例拒绝执行,防止时钟漂移重复触发
reconcileIntervalMinutes10分片对账周期(分钟):定期比对实际分片与预期,自动修复不一致
staticShardingfalse静态分片:true 时实例扩缩容不触发重分片(作业分片固定绑定)
disabledfalse禁用作业:true 时作业仅注册不执行(可通过运维 API 恢复)
overwritefalse配置覆盖开关,语义见第二章/第五章(本篇最关键的参数)

4.3 扩展点(SPI)

参数默认值说明
jobShardingStrategyTypenull分片策略 SPI 名;null 用默认「按实例 IP 平均分配」
jobExecutorServiceHandlerTypenull执行线程池 SPI 名(如 CPU、SINGLE_THREAD);null 用默认池
jobErrorHandlerTypenull错误处理器 SPI 名:LOG(默认)/THROW/IGNORE/EMAIL/WECHAT/DINGTALK
jobListenerTypes空作业监听器 SPI 名列表,可传多个
description''作业描述,仅存储与展示
labelnull3.0.4 新增标签字段,配合运维筛选
setProperty / props空 Properties作业类型专属键值对(如 script/http 作业的参数,见 4.4)
addExtraConfigurations空追加扩展配置对象(如 tracing RDB 的 JobExtraConfiguration)

4.4 props 实测:SCRIPT 作业的正确键名(排障实录)

script 作业的命令行通过 props 传入。社区教程常见的下划线键名在 3.0.4 会失败,实测对照:

错误写法(script.command_line),作业每次触发都报错(实测日志):

14:26:28.053 [propsScriptJob_Worker-1] ERROR o.a.s.e.e.h.g.LogJobErrorHandler - Job 'propsScriptJob' exception occur in job processing
org.apache.shardingsphere.elasticjob.infra.exception.JobConfigurationException: Cannot find script command line, job is not executed.
        at org.apache.shardingsphere.elasticjob.script.executor.ScriptJobExecutor.getScriptCommandLine(ScriptJobExecutor.java:55)
        ...

此时配置已入库(ZK config 节点可见 props: script.command_line: ...),但执行器读不到——用 javap -constants 反编译核对真实键名:

javap -constants -cp elasticjob-script-executor-3.0.4.jar \
  org.apache.shardingsphere.elasticjob.script.props.ScriptJobProperties
public static final java.lang.String SCRIPT_KEY = "script.command.line";

结论:3.0.4 的键名是全点号的 script.command.line(下划线是旧版写法)。改对后实测触发正常(连续两轮触发输出):

===OUTFILE===
script-ok
script-ok

⚠️ 另两个 script 作业实测坑:

  1. script.command.line 里写 >>/> 重定向无效:执行器走 Apache commons-exec(classpath 实测 commons-exec-1.3.jar),不经过 shell 解释。需要重定向/管道时用 /bin/sh /path/runscript.sh 包装脚本。实测直接写 /bin/echo xxx >> /root/scriptjob.out 时,>> 与路径被当作 echo 的普通参数打印(script-job-props-works >> /root/scriptjob.out {...})。
  2. ShardingContext 会作为附加参数追加到命令行:实测输出末尾带 {"jobName":"propsScriptJob","taskId":"...","shardingTotalCount":1,"jobParameter":"","shardingItem":0},脚本要按参数个数做好容错。

五、配置生效实测(ZooKeeper 存储层)

本节用真实命令走完「写入 → 改写 → 保持」闭环,作业均为 elasticjob-demo 命名空间下的最小配置实例(启动方式见《ElasticJob 3.0.4 安装指南》4.5)。

5.1 首次写入:默认值 dump

以仅设 cron 与分片数的配置启动(overwrite=true),用 zkCli 读取配置节点:

echo -e "get /elasticjob-demo/cfgMinimalJob/config" | \
  zkCli.sh -server 127.0.0.1:2181

实测回显(完整 config 节点内容):

cron: 0/8 * * * * ?
description: ''
disabled: false
failover: false
jobName: cfgMinimalJob
jobParameter: ''
maxTimeDiffSeconds: -1
misfire: true
monitorExecution: true
overwrite: true
reconcileIntervalMinutes: 10
shardingItemParameters: 0=A,1=B,2=C
shardingTotalCount: 2
staticSharding: false

这张 dump 就是第四章默认值表的实测依据:monitorExecution=true、misfire=true、maxTimeDiffSeconds=-1、reconcileIntervalMinutes=10、failover=false、overwrite=false、disabled=false、staticSharding=false、description=''。

5.2 overwrite=true:本地配置写回 ZK

同一作业名以不同参数重启(cron 0/10、分片 3、分片参数 alpha/beta/gamma、failover=true):

cron: 0/10 * * * * ?
failover: true
overwrite: true
shardingItemParameters: 0=alpha,1=beta,2=gamma
shardingTotalCount: 3

配置节点被整体改写,overwrite=true 的「以本地为准」语义实测成立。

5.3 overwrite=false:本地配置被忽略(运行期以 ZK 为准的铁证)

再以 overwrite=false 启动同一作业,本地故意传离谱参数(cron 0/99、分片 9、分片参数 0=zzz):

[cfg-exp3] registry center init ok, zk=10.89.64.10:2181 ns=elasticjob-demo
[cfg-exp3] job cfgMinimalJob scheduled, cron=0/99 * * * * ? shards=9

进程日志看似「按 0/99、9 分片」调度了,但实际触发回显是 3 个分片、alpha/beta/gamma 参数(即 5.2 写入的 ZK 存储配置):

2026-10-23T14:25:20.050048239 [elasticjob-cfgMinimalJob-1] trigger | shardingItem=0 shardingTotalCount=3 shardingParameter=alpha jobParameter=
2026-10-23T14:25:20.050055410 [elasticjob-cfgMinimalJob-2] trigger | shardingItem=1 shardingTotalCount=3 shardingParameter=beta jobParameter=
2026-10-23T14:25:20.050091591 [elasticjob-cfgMinimalJob-3] trigger | shardingItem=2 shardingTotalCount=3 shardingParameter=gamma jobParameter=

复测 ZK 节点未被改动(仍是 cron: 0/10、shardingTotalCount: 3)。

⚠️ 实践结论(多处踩坑来源):overwrite=false 时本地 JobConfiguration 对象只用于「首次创建」,运行期真正生效的是 ZK 存储值。想改线上作业配置,要么把 overwrite 打开滚动重启,要么直接改 ZK 节点(重启实例后生效)。

5.4 作业治理节点树

作业注册后 ZK 上的完整节点结构(zkCli 实测):

[zk] ls /elasticjob-demo
[cfgMinimalJob, javaSimpleJob, offlineSmokeJob, propsScriptJob]

[zk] ls /elasticjob-demo/javaSimpleJob
[config, instances, leader, servers, sharding]

[zk] ls /elasticjob-demo/javaSimpleJob/sharding
[0, 1, 2]

[zk] get /elasticjob-demo/javaSimpleJob/sharding/1/instance
10.89.64.11@-@5029

[zk] get /elasticjob-demo/javaSimpleJob/leader/election/instance
10.89.64.11@-@5029

[zk] ls /elasticjob-demo/javaSimpleJob/instances
[10.89.64.11@-@5029]

节点语义速查:

节点语义
config作业配置(YAML 文本,即 5.1 dump)
instances存活的作业实例(临时节点),值格式 IP@-@PID
leader/election主节点选举(instance 记录当选者,latch 为 Curator 分布式锁)
servers服务器维度的注册与状态
sharding/N分片项 N 的运行态(instance 子节点记录当前承担实例)

💡 排障入口:作业「不跑」时按此树排查——instances 为空说明进程没注册上(连不上 ZK/namespace 错);sharding/N/instance 缺失说明未完成分片分配;config 与预期不符多半是 overwrite 语义没吃透。

六、Spring Boot Starter yaml 配置

6.1 构件名辨析(先排一个常见错)

3.x 的 starter 构件是 elasticjob-lite-spring-boot-starter;Maven Central 上的 elasticjob-spring-boot-starter 是 2.x 遗留线、没有 3.0.4 版本。写错构件名 Maven 报(实测):

[ERROR] dependency: org.apache.shardingsphere.elasticjob:elasticjob-spring-boot-starter:jar:3.0.4 (compile)
[ERROR] elasticjob-spring-boot-starter:jar:3.0.4 was not found in https://maven.aliyun.com/repository/public ...

正确依赖:

<dependency>
    <groupId>org.apache.shardingsphere.elasticjob</groupId>
    <artifactId>elasticjob-lite-spring-boot-starter</artifactId>
    <version>3.0.4</version>
</dependency>

6.2 yaml 键全集(starter 元数据实测提取)

从 elasticjob-lite-spring-boot-starter-3.0.4.jar 内的 META-INF/spring-configuration-metadata.json 实测提取的键:

yaml 键说明
elasticjob.reg-center.server-lists / namespace注册中心地址与命名空间(必填)
elasticjob.reg-center.base-sleep-time-milliseconds / max-sleep-time-milliseconds / max-retriesCurator 重试参数(同第三章)
elasticjob.reg-center.session-timeout-milliseconds / connection-timeout-milliseconds / digest会话/连接超时与认证(同第三章)
elasticjob.jobs.<jobName>.*作业配置 Map,键名见下表
elasticjob.dump.enabled / dump.portSnapshotService 诊断端口开关
elasticjob.tracing.type / data-source / include-job-names / exclude-job-names事件追踪配置

作业级键(javap 反编译 ElasticJobConfigurationProperties 实测全集,yaml 中用短横线命名):

elastic-job-class        elastic-job-type        job-bootstrap-bean-name
cron                     time-zone               sharding-total-count
sharding-item-parameters job-parameter           monitor-execution
failover                 misfire                 max-time-diff-seconds
reconcile-interval-minutes job-sharding-strategy-type
job-executor-service-handler-type job-error-handler-type
job-listener-types       description             props
disabled                 overwrite

与 Java API 一一对应;elastic-job-class(普通类作业)与 elastic-job-type(SPI 类型作业如 SCRIPT/HTTP)二选一。

6.3 完整可运行示例

工程结构(Maven 编译实测 BUILD SUCCESS):

elasticjob-sbdemo/
├── pom.xml                    # spring-boot-starter-parent 2.7.18 + elasticjob-lite-spring-boot-starter 3.0.4
└── src/main/
    ├── java/com/example/
    │   ├── SbDemoApplication.java     # @SpringBootApplication 启动类
    │   └── YamlSimpleJob.java         # SimpleJob 实现,@Component 注册为 Bean
    └── resources/application.yml

application.yml(实测全链路生效的配置):

spring:
  application:
    name: elasticjob-sbdemo

elasticjob:
  reg-center:
    server-lists: 10.89.64.10:2181
    namespace: elasticjob-sbdemo
    max-retries: 3
  jobs:
    yamlSimpleJob:
      elastic-job-class: com.example.YamlSimpleJob
      cron: 0/6 * * * * ?
      sharding-total-count: 2
      sharding-item-parameters: 0=alpha,1=beta
      description: yaml-driven demo job
      failover: true
      misfire: true
      overwrite: true
      job-parameter: from-yaml

⚠️ 排障实录(三个必踩坑,均为实测报错):

  1. 作业类必须是 Spring Bean:YamlSimpleJob 不加 @Component 时启动失败——

    Action:
    Consider defining a bean of type 'com.example.YamlSimpleJob' in your configuration.
    
  2. @SpringBootApplication 启动类不能是 final:public final class SbDemoApplication 触发 CGLIB 代理校验失败——

    org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem:
    @Configuration class 'SbDemoApplication' may not be final. Remove the final modifier to continue.
    
  3. Spring Boot 2.7 + ElasticJob 3.0.4 的 snakeyaml 版本冲突:Boot 2.7.18 把 snakeyaml 管理为 1.30,而 ElasticJob 3.0.4 需要snakeyaml 2.x,启动即崩——

    java.lang.NoClassDefFoundError: org/yaml/snakeyaml/inspector/TagInspector
    Caused by: java.lang.ClassNotFoundException: org.yaml.snakeyaml.inspector.TagInspector
    

    解决:pom 中覆盖属性 <snakeyaml.version>2.2</snakeyaml.version>(Spring Boot parent 按属性名管理版本)。

6.4 运行实测:yaml → 触发 → ZK

mvn spring-boot:run 启动(实测启动日志):

2026-10-23 14:37:57.188  INFO 6037 --- [           main] l.s.b.j.ElasticJobBootstrapConfiguration : creating Job Bootstrap Beans
2026-10-23 14:37:57.188  INFO 6037 --- [           main] com.example.SbDemoApplication            : Started SbDemoApplication in 0.542 seconds (JVM running for 0.676)
[yaml-job] 2026-10-23T14:38:00.038039473 trigger | item=0/2 param=alpha desc=from-yaml
[yaml-job] 2026-10-23T14:38:00.038039100 trigger | item=1/2 param=beta desc=from-yaml
[yaml-job] 2026-10-23T14:38:06.009628017 trigger | item=0/2 param=alpha desc=from-yaml
[yaml-job] 2026-10-23T14:38:06.009746684 trigger | item=1/2 param=beta desc=from-yaml

每 6 秒触发、2 个分片(alpha/beta)、job-parameter=from-yaml 贯通到 ShardingContext——yaml 配置全链路生效。

持久化核验:elasticjob-sbdemo 命名空间下的 config 节点(zkCli 实测):

cron: 0/6 * * * * ?
description: yaml-driven demo job
disabled: false
failover: true
jobName: yamlSimpleJob
jobParameter: from-yaml
maxTimeDiffSeconds: -1
misfire: true
monitorExecution: false
overwrite: true
reconcileIntervalMinutes: 0
shardingItemParameters: 0=alpha,1=beta
shardingTotalCount: 2
staticSharding: false

⚠️ 值得注意的实测差异:同一份作业语义,Starter 持久化的默认值与 Java API 不同——monitorExecution: false、reconcileIntervalMinutes: 0(Java API 默认 true/10,见 5.1 dump)。即 starter 场景默认关闭执行监控、关闭分片对账。若依赖 failover/misfire 与自愈对账,建议在 yaml 显式补 monitor-execution: true 与 reconcile-interval-minutes: 10。

七、生产配置模板与建议

7.1 Java API 模板(含注释)

JobConfiguration.newBuilder("orderSyncJob", 3)                 // 作业名 + 分片总数
        .cron("0 0/10 * * * ?")                                // 每 10 分钟
        .timeZone("Asia/Shanghai")                             // 显式时区
        .shardingItemParameters("0=bj,1=sh,2=gz")              // 分片参数
        .failover(true)                                        // 需要高可用就开
        .misfire(true)                                         // 默认已开
        .monitorExecution(true)                                // failover 前提
        .maxTimeDiffSeconds(60)                                // 时钟漂移保护
        .reconcileIntervalMinutes(10)                          // 分片对账
        .jobErrorHandlerType("LOG")                            // 错误处理器
        .description("订单同步")                                // 可读性
        .overwrite(true)                                       // 首次上线 true,稳定后建议改 false 防误改
        .build();

7.2 关键取值建议

参数建议理由
overwrite首次发布 true;稳定运行期 false防止回滚/误发布覆盖线上已调整的配置(第五章实测语义)
failover + monitorExecution需要高可用成对开启monitorExecution=false 时 failover 无效
maxTimeDiffSeconds集群各机时钟不可靠时设 60 左右防时钟漂移导致同分片重复触发
reconcileIntervalMinutes默认 10 可接受对账是分片自愈的兜底
namespace按环境隔离(如 elasticjob-prod / elasticjob-staging)一套 ZK 多环境共存的隔离边界
digest生产 ZK 建议开启 ACL + digest注册中心节点可写即作业可被任意篡改
jobErrorHandlerType告警需求强用 EMAIL/WECHAT/DINGTALK(需引对应模块)默认 LOG 只进应用日志,容易被刷屏淹没

八、常见问题(FAQ)

Q1:作业改了代码/配置但「没生效」? 九成是 overwrite=false:运行期以 ZK config 节点为准(5.3 铁证)。核对 zkCli get /<ns>/<job>/config 与预期,或临时 overwrite=true 滚动重启。

Q2:script 作业报 Cannot find script command line, job is not executed.? props 键名写成了 script.command_line(下划线)。3.0.4 真实键名是 script.command.line(javap -constants 实测,见 4.4)。

Q3:script 作业执行了但重定向/管道不生效? 执行器走 commons-exec 不经 shell,>/>>/| 是普通字符。用 /bin/sh /path/script.sh 包装。

Q4:Starter 启动报 Consider defining a bean of type 'xxx'? elastic-job-class 指向的类必须同时是 Spring Bean(加 @Component),见 6.3 排障实录 1。

Q5:Starter 启动报 @Configuration class 'X' may not be final? 启动类去掉 final 修饰符。

Q6:Boot 2.7 集成报 NoClassDefFoundError: org/yaml/snakeyaml/inspector/TagInspector? snakeyaml 1.30(Boot 2.7 管理版本)与 ElasticJob 3.0.4(需 2.x)冲突,pom 覆盖 <snakeyaml.version>2.2</snakeyaml.version>。

Q7:Starter 依赖拉不下来 elasticjob-spring-boot-starter:3.0.4 was not found? 构件名写错,3.x 是 elasticjob-lite-spring-boot-starter(6.1)。

Q8:ScheduleJobBootstrap 编译不过 cannot find symbol? 包名差一层 .impl:org.apache.shardingsphere.elasticjob.lite.api.bootstrap.impl.ScheduleJobBootstrap(3.0.4 真实路径)。

Q9:如何直接看线上作业的完整配置? echo -e "get /<namespace>/<jobName>/config" | zkCli.sh -server <zk>:2181(回显模板见 5.1)。ZK 开了 ACL 时带 digest 认证登录。

九、参考链接

  1. 官方文档(Lite 手册):https://shardingsphere.apache.org/elasticjob/current/
  2. GitHub 仓库:https://github.com/apache/shardingsphere-elasticjob
  3. Maven Central 构件目录:https://repo1.maven.org/maven2/org/apache/shardingsphere/elasticjob/
  4. 本站认知篇:《ElasticJob 3.0.4 介绍与选型指南》
  5. 本站安装篇(本文实测工程骨架来源):《ElasticJob 3.0.4 安装指南》
  6. 本站同类消息中间件配置参考:《BlazingMQ 0.95.20 配置参数详解》