** 项目地址:**
git@gitee.com:xiaofeng001/elastic-job-springboot.git
整个测试依赖zookeeper和运维平台(elastic-job-lite-console)
名词解释 详情见 Elastic-Job开发手册
作业:定时任务
分片: 每台任务服务器只运行分配给该服务器的分片,如果作业分为 4 片,
用两台服务器执行,则每个服务器分到 2 片,分别负责作业的 50% 的负载。
分片项:我理解为分片的索引,数字,始于 0 而终于分片总数减 1。
ElasticJob 并不直接提供数据处理的功能,而是将分片项分配至各个运行中
的作业服务器,开发者需要自行处理分片项与业务的对应关系。
1,安装zookeeper (略)
2,下载 elastic-job-lite-console-2.1.5.tar.gz
链接: pan.baidu.com/s/1d0IPGimE… 密码: kcdc
3,启动并配置 elastic-job-lite-console
cd /usr/local/elastic-job-lite-console/bin
./start.sh
1),访问,默认账号和密码都是root
2),添加注册中心zookeeper地址
3),项目中代码截图
4),两个作业启动,就会在 作业维度中 看到以下信息:
5),可以修改作业的信息:
4,测试分片效果
测试的时候,把dataFlowJobScheduler和scriptJobScheduler都注释掉,只剩下simpleJobScheduler。
配置:
gupaoJob.cron = 0/10 * * * * ?
# 分4片
gupaoJob.shardingTotalCount = 4
gupaoJob.shardingItemParameters = 0=xiaofeng,1=xiaoming, 2=zhangsan, 3=lisi
gupaoJob.jobParameter = feng2673
1),启动 EjobApp
因为只有一个instance,所以这个四个分片只在这一个节点上执行,这四个分片在执行的时候其实是开了4个线程。
2),启动 EjobApp2 (同一个项目,另一个节点,端口不能一样)
清空两个客户端日志:
可以看到 EjobApp2这个节点 被分到了两片(2,3),原来的节点EjobApp只剩下了(0,1)分片。
3),关闭EjobApp节点(测试故障转移)
清空控制台,可以看到EjobApp2节点拿到了四个分片(0,1,2,3)