1. 安裝zookeeper
下載zookeeper
## 1.1 下載zookeeper
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
# 解壓文件
tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz
1.2 配置zookeetper
mv apache-zookeeper-3.5.5-bin zookeeper
mkdir /opt/zookeeper/{dataDir,dataLogDir}
cd /opt/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg

image.png
配置完成保存并退出
1.3 啟動(dòng)zookeeper
#啟動(dòng)命令:
./bin/zkServer.sh start
#在前端啟動(dòng),可看啟動(dòng)日志
./bin/zkServer.sh start-foreground
#停止命令:
./bin/zkServer.sh stop
#重啟命令:
./bin/zkServer.sh restart
#狀態(tài)查看命令:
./bin/zkServer.sh status
2. 運(yùn)行elastic-job的UI包
2.1 下載包
# 下載UI包
wget https://dlcdn.apache.org/shardingsphere/elasticjob-ui-3.0.1/apache-shardingsphere-elasticjob-3.0.1-lite-ui-bin.tar.gz
#解壓包
tar -zxvf apache-shardingsphere-elasticjob-3.0.1-lite-ui-bin.tar.gz
運(yùn)行后,訪問(wèn)地址:http://192.168.31.128:8088/#/login ,默認(rèn)賬號(hào)密碼都是root

image.png
2.2 配置注冊(cè)中心

image.png

image.png
2.3 修改任務(wù)觸發(fā)規(guī)則

image.png
3. 項(xiàng)目中接入elasticjob
3.1 在項(xiàng)目中的pom引入依賴:
<dependency>
<groupId>org.apache.shardingsphere.elasticjob</groupId>
<artifactId>elasticjob-lite-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<!-- 自行修改相應(yīng)版本-->
<version>3.0.2</version>
</dependency>
3.2 配置文件增加elasticjob配置
elasticjob:
regCenter:
serverLists: 192.168.31.128:2181
namespace: spring-cloud-alibaba-job
baseSleepTimeMilliseconds: 2000
maxSleepTimeMilliseconds: 4000
maxRetries: 3
jobs:
elasticMessageJob:
elasticJobClass: com.joe.strawberry.job.component.ElasticMessageJob
cron: 0/1 * * * * ?
shardingTotalCount: 1
overwrite: true
failover: true
tracing:
type: RDB
3.3 增加任務(wù)
package com.joe.strawberry.job.component;
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.elasticjob.api.ShardingContext;
import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class ElasticMessageJob implements SimpleJob {
@Override
public void execute(ShardingContext shardingContext) {
log.info("#############");
log.info("測(cè)試的定時(shí)任務(wù)執(zhí)行了");
}
}