成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Task一個輕量級的分布式任務(wù)計算系統(tǒng)

monw3c / 2537人閱讀

摘要:已預(yù)留擴(kuò)展,可以實現(xiàn)自己的模塊你想好了嗎你是否真的需要這樣的一個工具,到底是異步還是同步,什么樣的才可以稱的上任務(wù)。異步分布執(zhí)行雖然可以提高系統(tǒng)吞吐量,但它是在高于一定得計算量請求量的情況下才可以顯現(xiàn)出來這一特點。

Task系統(tǒng)設(shè)計與使用

Task是一個輕量級的分布式任務(wù)計算系統(tǒng),他可以幫助你快速編寫一個可以在集群環(huán)境下運行的分布式方法,而這只需要你使用一行代碼就可以在你原有的方法上做到.

一個簡單例子:

public class Hello {

    public void say(String msg) throws InterruptedException {
        Thread.sleep(1000);
        System.out.println(msg);
    }
}


public class SetUp {

    public static void main(String[] args) throws InterruptedException {
        // 獲取Hello對象的代理實例
        Hello hello = Task.registerASyncClass(Hello.class);
        // 此時say方法會被立即返回且是被集群中的某個節(jié)點給調(diào)用了
        hello.say("hello world");
    }
}
Task支持業(yè)務(wù)場景

Task的設(shè)計的目的是支持分布式任務(wù)計算,可以作為一款任務(wù)執(zhí)行引擎.支持一下特點:

支持任務(wù)的開始暫停刪除

采用多種調(diào)度算法,可以指定任務(wù)在特定節(jié)點消費在不同的Executor上執(zhí)行

擴(kuò)展性強(qiáng),可以對接各種mq服務(wù)executor模塊支持Spring的BeanFactory或者第三方DI容器

支持分布式任務(wù)執(zhí)行,整個調(diào)用過程可以讓開發(fā)者無感知

攜帶監(jiān)控系統(tǒng),可以隨時了解系統(tǒng)運行的狀態(tài)

Task系統(tǒng)架構(gòu)

Task主要分為以下幾個模塊:

ClientProxy: 用于獲取任務(wù)提交的代理對象,如上Task.registerASyncClass(Hello.class)可以獲取Hello對象的代理實例,用于提交任務(wù)到mq服務(wù)。

Coding: 可以對方法的調(diào)用動作進(jìn)行描述和重放方法的執(zhí)行,并可以對描述信息進(jìn)行序列化存取到mq服務(wù)和反序列化成一個Runnable對象

MQ: 用于存放方法調(diào)用信息描述的地方,默認(rèn)支持Redis的List結(jié)構(gòu)隊列,并預(yù)留擴(kuò)展用于對接各個MQ組件

Controller: 任務(wù)調(diào)度的控制中心,負(fù)責(zé)任務(wù)調(diào)度路由,任務(wù)的開始、暫停等動作

Diapatch: Task采用的是拉取的方式進(jìn)行任務(wù)調(diào)用。Dispatch模塊設(shè)計的目的主要是合適的時間去從MQ中拉取任務(wù)并監(jiān)管任務(wù)的執(zhí)行情況,異常處理

BeanFactory: 任務(wù)所屬對象的Bean管理,默認(rèn)采用google的guice管理,已預(yù)留擴(kuò)展,可以方便支持其它DI容器,可以方便擴(kuò)展Spring的BeanFactory

Executor: 任務(wù)真正執(zhí)行的地方,Dispatch模塊會把拉取到任務(wù)通過Coding轉(zhuǎn)成Runnable對象,并交給Executor模塊,Executor模塊類似于本地的ExecutorService框架,用于本地的并發(fā)模型。已預(yù)留擴(kuò)展,可以實現(xiàn)自己的Executor模塊

你想好了嗎

你是否真的需要這樣的一個工具,到底是異步還是同步,什么樣的才可以稱的上任務(wù)。在使用前,希望你也可以考慮清楚這些問題。這里我需要聲明的是,
能同步的最好不要異步。異步分布執(zhí)行雖然可以提高系統(tǒng)吞吐量,但它是在高于一定得計算量請求量的情況下才可以顯現(xiàn)出來這一特點。當(dāng)你決定需要它時,
你就要決定放棄及時響應(yīng)的特性,雖然它可以達(dá)到近實時的計算(在無壓力下,一個任務(wù)默認(rèn)可能會出現(xiàn)延遲1s執(zhí)行,這個時間可以設(shè)置)。另外,你是否需要的是一個分布式的異步并行框架,
還是JDK自帶的單機(jī)并發(fā)框架,如果executorservice就可以滿足了,那你也不必使用它了,雖然我個人覺得這個在使用時會更方便,但我并不想讓你那么做,能滿足需求就好,
方案永遠(yuǎn)不止一個,用你最熟悉的吧。

項目地址:https://github.com/WangJunTYTL/task

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66201.html

相關(guān)文章

  • hadoop需要哪些技術(shù)支持

    摘要:是在端的,是提前的,需要自己設(shè)置。如果在開源大數(shù)據(jù)框架上部署大快的開發(fā)框架,需要平臺的組件支持如下數(shù)據(jù)源與引擎數(shù)據(jù)采集數(shù)據(jù)處理模塊機(jī)器學(xué)習(xí)和模塊上傳服務(wù)器端包,直接支持搜索引擎模塊不獨立發(fā)布 hadoop是一個開源軟件框架,可安裝在一個商用機(jī)器集群中,使機(jī)器可彼此通信并協(xié)同工作,以高度分布式的方式共同存儲和處理大量數(shù)據(jù)。最初,Hadoop 包含以下兩個主要組件:Hadoop Distr...

    MartinHan 評論0 收藏0
  • 《從0到1學(xué)習(xí)Flink》—— Apache Flink 介紹

    摘要:擴(kuò)展庫還包括用于復(fù)雜事件處理,機(jī)器學(xué)習(xí),圖形處理和兼容性的專用代碼庫。事件時間機(jī)制使得那些事件無序到達(dá)甚至延遲到達(dá)的數(shù)據(jù)流能夠計算出精確的結(jié)果。負(fù)責(zé)接受用戶的程序代碼,然后創(chuàng)建數(shù)據(jù)流,將數(shù)據(jù)流提交給以便進(jìn)一步執(zhí)行。 showImg(https://segmentfault.com/img/remote/1460000016902812); 前言 Flink 是一種流式計算框架,為什么我...

    flyer_dev 評論0 收藏0
  • python---協(xié)程

    摘要:隨著我們對于效率的追求不斷提高,基于單線程來實現(xiàn)并發(fā)又成為一個新的課題,即只用一個主線程很明顯可利用的只有一個情況下實現(xiàn)并發(fā)。作為的補充可以檢測操作,在遇到操作的情況下才發(fā)生切換協(xié)程介紹協(xié)程是單線程下的并發(fā),又稱微線程,纖程。 引子 之前我們學(xué)習(xí)了線程、進(jìn)程的概念,了解了在操作系統(tǒng)中進(jìn)程是資源分配的最小單位,線程是CPU調(diào)度的最小單位。按道理來說我們已經(jīng)算是把cpu的利用率提高很多了。...

    lolomaco 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<