您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
ElasticJob-Lite配置手册(下)
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
ElasticJob-Lite配置手册(下)
Apache ShardingSphere
2021-01-27
IP归属:未知
28640浏览
# Spring Boot Starter ## 注册中心配置 配置前缀:`elasticjob.reg-center` 可配置属性: | 属性名 | 是否必填 | | ------------------------------- |:-------- | | server-lists | 是 | | namespace | 是 | | base-sleep-time-milliseconds | 否 | | max-sleep-time-milliseconds | 否 | | max-retries | 否 | | session-timeout-milliseconds | 否 | | connection-timeout-milliseconds | 否 | | digest | 否 | 配置格式参考: **YAML** ```yaml elasticjob: regCenter: serverLists: localhost:6181 namespace: elasticjob-lite-springboot ``` **Properties** ``` elasticjob.reg-center.namespace=elasticjob-lite-springboot elasticjob.reg-center.server-lists=localhost:6181 ``` ## 作业配置 配置前缀:`elasticjob.jobs` 可配置属性: | 属性名 | 是否必填 | | --------------------------------- |:-------- | | elasticJobClass / elasticJobType | 是 | | cron | 否 | | jobBootstrapBeanName | 否 | | 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 | 否 | **elasticJobClass 与 elasticJobType 互斥,每项作业只能有一种类型** 如果配置了 cron 属性则为定时调度作业,Starter 会在应用启动时自动启动; 否则为一次性调度作业,需要通过 jobBootstrapBeanName 指定 OneOffJobBootstrap Bean 的名称, 在触发点注入 OneOffJobBootstrap 的实例并手动调用 execute() 方法。 配置格式参考: **YAML** ```yaml elasticjob: jobs: simpleJob: elasticJobClass: org.apache.shardingsphere.elasticjob.lite.example.job.SpringBootSimpleJob cron: 0/5 * * * * ? shardingTotalCount: 3 shardingItemParameters: 0=Beijing,1=Shanghai,2=Guangzhou scriptJob: elasticJobType: SCRIPT cron: 0/10 * * * * ? shardingTotalCount: 3 props: script.command.line: "echo SCRIPT Job: " manualScriptJob: elasticJobType: SCRIPT jobBootstrapBeanName: manualScriptJobBean shardingTotalCount: 9 props: script.command.line: "echo Manual SCRIPT Job: " ``` **Properties** ``` elasticjob.jobs.simpleJob.elastic-job-class=org.apache.shardingsphere.elasticjob.lite.example.job.SpringBootSimpleJob elasticjob.jobs.simpleJob.cron=0/5 * * * * ? elasticjob.jobs.simpleJob.sharding-total-count=3 elasticjob.jobs.simpleJob.sharding-item-parameters=0=Beijing,1=Shanghai,2=Guangzhou elasticjob.jobs.scriptJob.elastic-job-type=SCRIPT elasticjob.jobs.scriptJob.cron=0/5 * * * * ? elasticjob.jobs.scriptJob.sharding-total-count=3 elasticjob.jobs.scriptJob.props.script.command.line=echo SCRIPT Job: elasticjob.jobs.manualScriptJob.elastic-job-type=SCRIPT elasticjob.jobs.manualScriptJob.job-bootstrap-bean-name=manualScriptJobBean elasticjob.jobs.manualScriptJob.sharding-total-count=3 elasticjob.jobs.manualScriptJob.props.script.command.line=echo Manual SCRIPT Job: ``` ## 事件追踪配置 配置前缀:`elasticjob.tracing` | 属性名 | 可选值 | 是否必填 | | -----------------|:------------- |:-------- | | type | RDB | 否 | 目前仅提供了 RDB 类型的事件追踪数据源实现。 Spring IoC 容器中存在 DataSource 类型的 bean 且配置数据源类型为 RDB 时会自动配置事件追踪,无须显式创建。 配置格式参考: **YAML** ```yaml elasticjob: tracing: type: RDB ``` **Properties** ``` elasticjob.tracing.type=RDB ``` ## 作业信息导出配置 配置前缀:`elasticjob.dump` | 属性名 | 缺省值 | 是否必填 | | -----------------|:------------- |:-------- | | enabled | true | 否 | | port | | 是 | Spring Boot 提供了作业信息导出端口快速配置,只需在配置中指定导出所用的端口号即可启用导出功能。 如果没有指定端口号,导出功能不会生效。 配置参考: **YAML** ```yaml elasticjob: dump: port: 9888 ``` **Properties** ``` elasticjob.dump.port=9888 ``` # Spring 命名空间 使用 Spring 命名空间需在 pom.xml 文件中添加 elasticjob-lite-spring 模块的依赖。 ```xml <dependency> <groupId>org.apache.shardingsphere.elasticjob</groupId> <artifactId>elasticjob-lite-spring-namespace</artifactId> <version>${latest.release.version}</version> </dependency> ``` 命名空间:[http://shardingsphere.apache.org/schema/elasticjob/elasticjob.xsd](http://shardingsphere.apache.org/schema/elasticjob/elasticjob.xsd) ## 注册中心配置 \<elasticjob:zookeeper /> 可配置属性: | 属性名 | 是否必填 | | ------------------------------- |:------- | | id | 是 | | server-lists | 是 | | namespace | 是 | | base-sleep-time-milliseconds | 否 | | max-sleep-time-milliseconds | 否 | | max-retries | 否 | | session-timeout-milliseconds | 否 | | connection-timeout-milliseconds | 否 | | digest | 否 | ## 作业配置 \<elasticjob:job /> 可配置属性: | 属性名 | 是否必填 | | --------------------------------- |:-------- | | id | 是 | | class | 否 | | job-ref | 否 | | registry-center-ref | 是 | | tracing-ref | 否 | | cron | 是 | | 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 | 否 | ## 事件追踪配置 \<elasticjob:rdb-tracing /> 可配置属性: | 属性名 | 类型 | 是否必填 | 缺省值 | 描述 | | --------------- |:---------- |:------- |:----- |:--------------------- | | id | String | 是 | | 事件追踪 Bean 主键 | | data-source-ref | DataSource | 是 | | 事件追踪数据源 Bean 名称 | ## 快照导出配置 \<elasticjob:snapshot /> 可配置属性: | 属性名 | 类型 | 是否必填 | 缺省值 | 描述 | | ------------------- |:------ |:------ |:------ |:------------------------------------------------------------------------ | | id | String | 是 | | 监控服务在 Spring 容器中的主键 | | registry-center-ref | String | 是 | | 注册中心 Bean 的引用,需引用 reg:zookeeper 的声明 | | dump-port | String | 是 | | 导出作业信息数据端口<br />使用方法: echo "dump@jobName" \| nc 127.0.0.1 9888 | # 内置策略 ## 简介 ElasticJob 通过 SPI 方式允许开发者扩展策略; 与此同时,ElasticJob 也提供了大量的内置策略以便于开发者使用。 ## 使用方式 内置策略通过 type 进行配置。 本章节根据功能区分并罗列 ElasticJob 全部的内置算法,供开发者参考。 ## 记录日志策略 类型:LOG 默认内置:是 记录作业异常日志,但不中断作业执行。 ## 抛出异常策略 类型:THROW 默认内置:是 抛出系统异常并中断作业执行。 ## 忽略异常策略 类型:IGNORE 默认内置:是 忽略系统异常且不中断作业执行。 ## 邮件通知策略 类型:EMAIL 默认内置:否 发送邮件消息通知,但不中断作业执行。 Maven 坐标: ```xml <dependency> <groupId>org.apache.shardingsphere.elasticjob</groupId> <artifactId>elasticjob-error-handler-email</artifactId> <version>${latest.release.version}</version> </dependency> ``` 可配置属性: | 属性名 | 说明 | 是否必填 | 默认值 | | -------------- |:------------------- |:-------- |:------------------------ | | email.host | 邮件服务器地址 | 是 | - | | email.port | 邮件服务器端口 | 是 | - | | email.username | 邮件服务器用户名 | 是 | - | | email.password | 邮件服务器密码 | 是 | - | | email.useSsl | 是否启用 SSL 加密传输 | 否 | true | | email.subject | 邮件主题 | 否 | ElasticJob error message | | email.from | 发送方邮箱地址 | 是 | - | | email.to | 接收方邮箱地址 | 是 | - | | email.cc | 抄送邮箱地址 | 否 | null | | email.bcc | 密送邮箱地址 | 否 | null | | email.debug | 是否开启调试模式 | 否 | false | ## 企业微信通知策略 类型:WECHAT 默认内置:否 发送企业微信消息通知,但不中断作业执行。 Maven 坐标: ```xml <dependency> <groupId>org.apache.shardingsphere.elasticjob</groupId> <artifactId>elasticjob-error-handler-wechat</artifactId> <version>${latest.release.version}</version> </dependency> ``` 可配置属性: | 属性名 | 说明 | 是否必填 | 默认值 | | --------------------------------- |:----------------------------------- |:--------- |:--------- | | wechat.webhook | 企业微信机器人的 webhook 地址 | 是 | - | | wechat.connectTimeoutMilliseconds | 与企业微信服务器建立连接的超时时间 | 否 | 3000 毫秒 | | wechat.readTimeoutMilliseconds | 从企业微信服务器读取到可用资源的超时时间 | 否 | 5000 毫秒 | ## 钉钉通知策略 类型:DINGTALK 默认内置:否 发送钉钉消息通知,但不中断作业执行。 Maven 坐标: ```xml <dependency> <groupId>org.apache.shardingsphere.elasticjob</groupId> <artifactId>elasticjob-error-handler-dingtalk</artifactId> <version>${latest.release.version}</version> </dependency> ``` 可配置属性: | 属性名 | 说明 | 是否必填 | 默认值 | | ----------------------------------- |:----------------------------------|:------- |:-------- | | dingtalk.webhook | 钉钉机器人的 webhook 地址 | 是 | - | | dingtalk.keyword | 自定义关键词 | 否 | null | | dingtalk.secret | 签名的密钥 | 否 | null | | dingtalk.connectTimeoutMilliseconds | 与钉钉服务器建立连接的超时时间 | 否 | 3000 毫秒 | | dingtalk.readTimeoutMilliseconds | 从钉钉服务器读取到可用资源的超时时间 | 否 | 5000 毫秒 | ## 平均分片策略 类型:AVG_ALLOCATION 根据分片项平均分片。 如果作业服务器数量与分片总数无法整除,多余的分片将会顺序的分配至每一个作业服务器。 举例说明: 1. 如果 3 台作业服务器且分片总数为9,则分片结果为:1=[0,1,2], 2=[3,4,5], 3=[6,7,8]; 2. 如果 3 台作业服务器且分片总数为8,则分片结果为:1=[0,1,6], 2=[2,3,7], 3=[4,5]; 3. 如果 3 台作业服务器且分片总数为10,则分片结果为:1=[0,1,2,9], 2=[3,4,5], 3=[6,7,8]。 ## 奇偶分片策略 类型:ODEVITY 根据作业名称哈希值的奇偶数决定按照作业服务器 IP 升序或是降序的方式分片。 如果作业名称哈希值是偶数,则按照 IP 地址进行升序分片; 如果作业名称哈希值是奇数,则按照 IP 地址进行降序分片。 可用于让服务器负载在多个作业共同运行时分配的更加均匀。 举例说明: 1. 如果 3 台作业服务器,分片总数为2且作业名称的哈希值为偶数,则分片结果为:1 = [0], 2 = [1], 3 = []; 2. 如果 3 台作业服务器,分片总数为2且作业名称的哈希值为奇数,则分片结果为:3 = [0], 2 = [1], 1 = []。 ## 轮询分片策略 类型:ROUND_ROBIN ## CPU 资源策略 类型:CPU 根据 CPU 核数 * 2 创建作业处理线程池。 ## 单线程策略 类型:SINGLE_THREAD 使用单线程处理作业。
原创文章,需联系作者,授权转载
上一篇:ElasticJob-Lite运维手册
下一篇:ElasticJob-Lite配置手册(上)
Apache ShardingSphere
文章数
96
阅读量
231327
作者其他文章
01
突破关系型数据库桎梏:云原生数据库中间件核心剖析
数据库技术的发展与变革方兴未艾,NewSQL的出现,只是将各种所需技术组合在一起,而这些技术组合在一起所实现的核心功能,推动着云原生数据库的发展。 NewSQL的三种分类中,新架构和云数据库涉及了太多与数据库相关的底层实现,为了保证本文的范围不至太过发散,我们重点介绍透明化分片数据库中间件的核心功能与实现原理,另外两种类型的NewSQL在核心功能上类似,但实现原理会有所差别。
01
Apache ShardingSphere数据脱敏全解决方案详解(上)
Apache ShardingSphere针对新业务上线、旧业务改造分别提供了相应的全套脱敏解决方案。
01
Shardingsphere整合Narayana对XA分布式事务的支持(4)
ShardingSphere对于XA方案,提供了一套SPI解决方案,对Narayana进行了整合,Narayana初始化流程,开始事务流程,获取连接流程,提交事务流程,回滚事务流程。
01
从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
5.x 是 Apache ShardingSphere从分库分表中间件向分布式数据库生态转化的里程碑,从 4.x 版本后期开始打磨的可插拔架构在 5.x 版本已逐渐成型,项目的设计理念和 API 都进行了大幅提升。欢迎大家测试使用!
最新回复
丨
点赞排行
共0条评论
Apache ShardingSphere
文章数
96
阅读量
231327
作者其他文章
01
突破关系型数据库桎梏:云原生数据库中间件核心剖析
01
Apache ShardingSphere数据脱敏全解决方案详解(上)
01
Shardingsphere整合Narayana对XA分布式事务的支持(4)
01
从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号