分布式任務排程框架 Elastic Job

2021-10-06 07:35:55 字數 2206 閱讀 7780

elastic-job是噹噹⽹開源的⼀個分布式排程解決⽅案,基於quartz⼆次開發的。

分布式排程:

在分布式環境中,任務能夠按照指定條件執行。

例如:1 專案部署在多台伺服器上,其中定時任務只能有某一台主機執行,當此主機宕機其他定時任務選舉其一執行。

2 分片執行、多台例項任務執行時,每個任務例項僅負責一部分的資料段任務。

如下圖假設,每天0:05 執行統計乙個日誌表資料,分片1統計大於50歲的,分片2統計11-50歲的,分片3統計0-10歲的。這樣每個定時任務分片負責一部分的內容。

jar依賴 + zookeeper

在conf目錄下 複製乙份 zoo_sample.cfg 為 zoo.cfg

當前僅進行單例項啟動 zookeeper,配置使用預設即可

# 每次心跳時間間隔 毫秒

ticktime=2000

# 初始化的心跳次數, 從leader同步資料時,超出 心跳時間 x initlimit時則認為連不上

initlimit=10

# leader通過心跳檢測其他機器的連線狀態、超出synclimit x 心跳時間 則認為連不上

synclimit=5

# znode儲存路徑、請自行設定,不要使用/tmp儲存

datadir=/users/*****/project/zookeeper/zookeeper-3.4.9/data/

# 埠clientport=2181

啟動:

bin/zkserver.sh start

停止:bin/zkserver.sh stop

狀態:bin/zkserver.sh status

public class elasticjobdemo 

// 自己建立的乙個定時任務執行的實現

public static class myjobtimer implements ******job }}

package org.ns.learn3.elastic;

import com.dangdang.ddframe.job.api.shardingcontext;

import com.dangdang.ddframe.job.api.******.******job;

import com.dangdang.ddframe.job.config.jobcoreconfiguration;

import com.dangdang.ddframe.job.config.jobcoreconfiguration.builder;

import com.dangdang.ddframe.job.config.******.******jobconfiguration;

import com.dangdang.ddframe.job.lite.api.jobscheduler;

import com.dangdang.ddframe.job.lite.config.litejobconfiguration;

import com.dangdang.ddframe.job.reg.base.coordinatorregistrycenter;

import com.dangdang.ddframe.job.reg.zookeeper.zookeeperconfiguration;

import com.dangdang.ddframe.job.reg.zookeeper.zookeeperregistrycenter;

public class elasticjobdemo2

// 自己建立的乙個定時任務執行的實現

public static class myjobtimer implements ******job }}

分布式任務排程

定時job,在什麼時間進行執行 任務。public static void main string args catch exception e thread thread new thread runnable thread.start public static void main string...

分布式排程系統 任務排程

這就是分布式任務排程所要解決的問題 舉個栗子 如何快速的做出大量的熱狗?如果將每乙個乙個熱狗按流程做的話,可見工作量會十分巨大而且效率低下 對任務按需求切分成多個子任務 再對所有的中間態結果進行reduce合併,得到最終結果 我們換個角度理解mapreduce操作 還會有一些廚師,按照一定的比例,將...

quartz的分布式任務排程

在實際的併發量較高的專案中,架構師通常會對伺服器進行集群或者對專案架構進行分布式部署 請允許筆者模擬乙個場景 某專案構架採用了nginx進行三颱應用型伺服器的負載均衡,並且每台伺服器部署同一套 這裡顯然要對quartz相應的進行集群 假設,該專案中存在乙個定時器模組 如果這裡不做特殊處理的話,三颱應...