中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何正確的使用elastic-job

發布時間:2021-06-18 17:45:05 來源:億速云 閱讀:139 作者:Leah 欄目:大數據

本篇文章為大家展示了如何正確的使用elastic-job,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1、Docker基礎命令
docker ps 列出當前正在運行的容器
docker ps -a 列出全部的容器
docker rm 容器ID 移除容器
docker images 全部鏡像

運行zookeeper:
docker run --name elasticzookeeper -p 2181:2181 -v /Users/abc/Desktop/WorkSpace/DockerData/elsaticzookeeper/data:/data/ -d zookeeper
docker run 運行一個容器  —name 給容器起個名字(標識,docker不能重復) -p 宿主端?口:容器?端?口  -v  宿主?目錄:容器??目錄,掛載磁盤卷  -d 后臺運行容器

docker exec -it 容器id  bash  登錄到容器中
2、elastic-job

我們可以參考官方的文檔(有中文的),很詳細有具體的使用,http://elasticjob.io/docs/elastic-job-lite/00-overview/

elastic-job是什么:

(摘自官網)Elastic-Job是一個分布式調度解決方案,由兩個相互獨立的子項目Elastic-Job-Lite和Elastic-Job-Cloud組成。Elastic-Job-Lite定位為輕量級無中心化解決方案,使用jar包的形式提供分布式任務的協調服務;Job-Cloud采用自研Mesos Framework的解決方案,額外提供資源治理、應用分發以及進程隔離等功能(PS:我在這里只說Elastic-Job-Lite,因為Job-Cloud我沒去研究)。 簡單的說Elastic-Job-Lite就是一個分布式定時任務。

怎么使用elastic-job:
1、maven依賴:
<dependency>
  <groupId>com.dangdang</groupId>
  <artifactId>elastic-job-lite-spring</artifactId>
  <version>2.1.5</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.dangdang/elastic-job-lite-core -->
<dependency>
  <groupId>com.dangdang</groupId>
  <artifactId>elastic-job-lite-core</artifactId>
  <version>2.1.5</version>
</dependency>
2、簡單的列子
2.1寫簡單的定時任務的代碼
public class FirstSimpleJobDemo implements SimpleJob {

    private static final Logger logger = LoggerFactory.getLogger(FirstSimpleJobDemo.class);

    @Override
    public void execute(ShardingContext shardingContext) {

        int shardingTotalCount = shardingContext.getShardingTotalCount();
        int item = shardingContext.getShardingItem();
        String shardingParameter = shardingContext.getShardingParameter();

        logger.info("shardingTotalCount:{},shardingParameter:{}",shardingTotalCount,shardingParameter);

        logger.info("----- ThredID:{},當前分片項:{}",Thread.currentThread().getId(),item);



    }
}

只要實現SimpleJob類然后實現execute就可以了,在execute中寫我們的定時任務處理邏輯。

(摘自官網)SimpleJob 意為簡單實現,未經任何封裝的類型。需實現SimpleJob接口。該接口僅提供單一方法用于覆蓋,此方法將定時執行。與Quartz原生接口相似,但提供了彈性擴縮容和分片等功能。 看下官方的demo

public class MyElasticJob implements SimpleJob {
    
    @Override
    public void execute(ShardingContext context) {
        switch (context.getShardingItem()) {
            case 0: 
                // do something by sharding item 0
                break;
            case 1: 
                // do something by sharding item 1
                break;
            case 2: 
                // do something by sharding item 2
                break;
            // case n: ...
        }
    }
}

使用context.getShardingItem()使用多線程對不同的數據做不同的處理。

  • 我們還可以實現Dataflow類型作業用來處理流作業,Script類型作業,用來處理腳本作業。具體可以查看官方文檔。

2.2定時任務的配置:

a)需要配置注冊中心

代碼如下:

<reg:zookeeper id="regCenter" server-lists="localhost:2181" namespace="elsatic-job" base-sleep-time-milliseconds="1000" max-sleep-time-milliseconds="3000" max-retries="3" />

其中參數的意思為:

  • server-lists 連接Zookeeper服務器的列表

  • namespace Zookeeper的命名空間

  • base-sleep-time-milliseconds 等待重試的間隔時間的初始值

  • max-sleep-time-milliseconds 等待重試的間隔時間的最大值

  • maxRetries 最大重試次數

其具體使用和參數的單位等請去官網的配置手冊中查看。

b)配置任務

<!-- 配置作業-->
<job:simple id="demoSimpleSpringJob" class="org.chen.demo.FirstSimpleJobDemo"
            registry-center-ref="regCenter" cron="0 0/2 * * * ?" sharding-total-count="2" sharding-item-parameters="0=A,1=B" overwrite="true"/>

其中參數的意思為:

  • id 作業名稱

  • class 作業實現類,需實現ElasticJob接口

  • registry-center-ref 注冊中心Bean的引用,需引用reg:zookeeper的聲明

  • sharding-total-count 作業分片總數

  • sharding-item-parameters 分片序列號和參數用等號分隔,多個鍵值對用逗號分隔 分片序列號從0開始,不可大于或等于作業分片總數

  • overwrite 本地配置是否可覆蓋注冊中心配置,如果可覆蓋,每次啟動作業都以本地配置為準

具體使用可以參考官方配置手冊。需要注意,overwrite這個參數默認為false

3、運維平臺:
  1. 從github把console的代碼下載下來然后運行代碼,然后輸入http://localhost:8899/即可訪問控制臺。8899為默認端口號,可通過啟動腳本輸入-p自定義端口號。

  2. 進入平臺,新建全局配置,填寫注冊中心名稱(就是自己好辨識是哪個項目或者那塊業務相關的),注冊中心地址(zookeeper的地址),命名空間需要和定時任務項目中配置的一致,加完后點擊連接按鈕,連接上后可進行下步操作

  3. 進入作業操作->作業維度 顯示每個定時任務,然后可以操作每個定時任務

  4. 進入作業操作->服務器維度 顯示服務器的IP,運行任務的個數等。

上述內容就是如何正確的使用elastic-job,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临沧市| 长阳| 顺昌县| 竹溪县| 二连浩特市| 句容市| 郯城县| 海安县| 佛学| 盐边县| 巴彦县| 龙陵县| 枝江市| 伊吾县| 广饶县| 太白县| 信丰县| 宾阳县| 大同市| 淳安县| 汉川市| 博白县| 成武县| 湘阴县| 邻水| 教育| 太原市| 宜兴市| 阿拉善左旗| 天峨县| 广丰县| 霞浦县| 化隆| 南康市| 柳河县| 津南区| 宁强县| 蒲江县| 定边县| 石城县| 罗江县|