亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

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

monw3c / 2625人閱讀

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

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

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

一個(gè)簡(jiǎ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對(duì)象的代理實(shí)例
        Hello hello = Task.registerASyncClass(Hello.class);
        // 此時(shí)say方法會(huì)被立即返回且是被集群中的某個(gè)節(jié)點(diǎn)給調(diào)用了
        hello.say("hello world");
    }
}
Task支持業(yè)務(wù)場(chǎng)景

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

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

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

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

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

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

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

Task主要分為以下幾個(gè)模塊:

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

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

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

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

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

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

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

你想好了嗎

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

項(xiàng)目地址:https://github.com/WangJunTYTL/task

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/66201.html

相關(guān)文章

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

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

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

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

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

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

    lolomaco 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<