ElasticJob Spring 命名空间配置详解
概述
ElasticJob 是一个分布式调度解决方案,提供了丰富的功能特性。通过 Spring 命名空间配置方式,开发者可以更加便捷地在 Spring 环境中集成和使用 ElasticJob。本文将详细介绍如何使用 Spring 命名空间配置 ElasticJob 的各项功能。
环境准备
在使用 Spring 命名空间前,需要在项目中添加相应的依赖:
<dependency>
<groupId>org.apache.shardingsphere.elasticjob</groupId>
<artifactId>elasticjob-spring-namespace</artifactId>
<version>${latest.release.version}</version>
</dependency>
注册中心配置
ElasticJob 使用 ZooKeeper 作为注册中心,通过以下配置声明:
<elasticjob:zookeeper
id="regCenter"
server-lists="localhost:2181"
namespace="elasticjob-demo"
base-sleep-time-milliseconds="1000"
max-sleep-time-milliseconds="3000"
max-retries="3"
session-timeout-milliseconds="60000"
connection-timeout-milliseconds="15000"
digest="username:password"/>
关键参数说明:
server-lists
: ZooKeeper 服务器列表,多个地址用逗号分隔namespace
: 作业命名空间,用于区分不同环境或应用base-sleep-time-milliseconds
: 重试间隔的初始值max-sleep-time-milliseconds
: 重试间隔的最大值max-retries
: 最大重试次数session-timeout-milliseconds
: 会话超时时间connection-timeout-milliseconds
: 连接超时时间digest
: 连接 ZooKeeper 的权限令牌
作业配置
作业是 ElasticJob 的核心概念,以下是基本配置示例:
<elasticjob:job
id="simpleJob"
class="com.example.MySimpleJob"
registry-center-ref="regCenter"
cron="0/5 * * * * ?"
sharding-total-count="3"
sharding-item-parameters="0=A,1=B,2=C"
description="简单作业示例"
overwrite="true"/>
作业配置详解:
-
基础配置:
id
: 作业唯一标识class
: 作业实现类,需实现 ElasticJob 接口registry-center-ref
: 引用的注册中心cron
: 作业触发表达式
-
分片配置:
sharding-total-count
: 总分片数sharding-item-parameters
: 分片参数,格式为"分片项=参数值"
-
高级配置:
monitor-execution
: 是否监控作业执行状态failover
: 是否开启失效转移misfire
: 是否开启错过任务重新执行job-sharding-strategy-type
: 作业分片策略类型job-error-handler-type
: 作业错误处理策略overwrite
: 本地配置是否覆盖注册中心配置
事件追踪配置
ElasticJob 提供了作业事件追踪功能,可将作业执行信息持久化到数据库:
<elasticjob:rdb-tracing
id="jobTracing"
data-source-ref="dataSource"/>
配置说明:
- 需要提供数据源引用
- 会自动创建事件追踪表
JOB_EXECUTION_LOG
和JOB_STATUS_TRACE_LOG
快照导出配置
快照功能可用于导出作业运行时信息:
<elasticjob:snapshot
id="jobSnapshot"
registry-center-ref="regCenter"
dump-port="9888"/>
使用方式:
通过命令 echo "dump@jobName" | nc 127.0.0.1 9888
可以导出指定作业的运行时信息
最佳实践
-
命名规范:
- 为作业和注册中心定义清晰的命名
- 命名空间应区分不同环境(如dev/test/prod)
-
配置管理:
- 生产环境建议关闭
overwrite
,防止本地配置意外覆盖线上配置 - 合理设置分片数,通常与执行节点数成倍数关系
- 生产环境建议关闭
-
监控与维护:
- 建议开启事件追踪功能,便于问题排查
- 合理设置快照端口,避免端口冲突
通过 Spring 命名空间配置 ElasticJob,开发者可以快速构建分布式调度系统,同时享受 Spring 生态的各种便利。合理配置各项参数,能够使作业运行更加稳定高效。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考