真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

什么是elastic-job

這篇文章主要講解了“什么是elastic-job”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“什么是elastic-job”吧!

創(chuàng)新互聯(lián)建站是專業(yè)的肥西網(wǎng)站建設(shè)公司,肥西接單;提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行肥西網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

ElasticJob 誕生于 2015 年,當(dāng)時(shí)業(yè)界雖然有 QuartZ 等出類拔萃的定時(shí)任務(wù)框架,但缺乏分布式方面的探索。

分布式調(diào)度云平臺(tái)產(chǎn)品的缺失,使得 ElasticJob  從出現(xiàn)伊始便備受關(guān)注。它有效的彌補(bǔ)了作業(yè)在分布式領(lǐng)域的短板,并且提供了一站式的自動(dòng)化運(yùn)維管控端。

ElasticJob 在技術(shù)選型時(shí),選擇站在了巨人的肩膀上而不是重復(fù)制造輪子的理念,將定時(shí)任務(wù)事實(shí)標(biāo)準(zhǔn)的 QuartZ 與分布式協(xié)調(diào)的利器  ZooKeeper 完美結(jié)合,快速而穩(wěn)定的搭建了全新概念的分布式調(diào)度框架。

ElasticJob 是什么?

ElasticJob 是一個(gè)分布式調(diào)度解決方案,由兩個(gè)相互獨(dú)立的子項(xiàng)目 ElasticJob Lite 和 ElasticJob Cloud  組成。

ElasticJob Lite 定位為輕量級(jí)無(wú)中心化解決方案,使用 jar 的形式提供分布式任務(wù)的協(xié)調(diào)服務(wù)。

ElasticJob Cloud 采用自研 Mesos Framework 的解決方案,額外提供資源治理、應(yīng)用分發(fā)以及進(jìn)程隔離等功能。

它通過(guò)彈性調(diào)度、資源管控、以及作業(yè)治理的功能,打造一個(gè)適用于互聯(lián)網(wǎng)場(chǎng)景的分布式調(diào)度解決方案,并通過(guò)開(kāi)放的架構(gòu)設(shè)計(jì),提供多元化的作業(yè)生態(tài)。

使用 ElasticJob 能夠讓開(kāi)發(fā)工程師不再擔(dān)心任務(wù)的線性吞吐量提升等非功能需求,使開(kāi)發(fā)工程師能夠更加專注于面向業(yè)務(wù)編碼設(shè)計(jì)。

同時(shí),它能夠解放運(yùn)維工程師,使他們不必再擔(dān)心任務(wù)的可用性和相關(guān)管理需求,只通過(guò)輕松的增加服務(wù)節(jié)點(diǎn)即可達(dá)到自動(dòng)化運(yùn)維的目的。

ElasticJob 調(diào)度模型

與大部分的作業(yè)平臺(tái)不同,ElasticJob 的調(diào)度模型劃分為支持線程級(jí)別調(diào)度的進(jìn)程內(nèi)調(diào)度 ElasticJob Lite,和進(jìn)程級(jí)別調(diào)度的  ElasticJob Cloud。

進(jìn)程內(nèi)調(diào)度

ElasticJob Lite 是面向進(jìn)程內(nèi)的線程級(jí)調(diào)度框架。通過(guò) ElasticJob ,作業(yè)能夠透明化的與業(yè)務(wù)應(yīng)用系統(tǒng)相結(jié)合。

它能夠方便的與 Spring 、Dubbo 等 Java 框架配合使用,在作業(yè)中可自由使用 Spring 注入的 Bean,如數(shù)據(jù)源連接池、Dubbo  遠(yuǎn)程服務(wù)等,更加方便的貼合業(yè)務(wù)開(kāi)發(fā)。

ElasticJob Lite 與業(yè)務(wù)應(yīng)用部署在一起,其生命周期與業(yè)務(wù)應(yīng)用保持一致,是典型的嵌入式輕量級(jí)架構(gòu)。

ElasticJob Lite 非常適合于資源使用穩(wěn)定、部署架構(gòu)簡(jiǎn)單的普通 Java 應(yīng)用,可以理解為 Java 開(kāi)發(fā)框架。

ElasticJob Lite 本身是無(wú)中心化架構(gòu),無(wú)需獨(dú)立的中心化調(diào)度節(jié)點(diǎn),分布式下的每個(gè)任務(wù)節(jié)點(diǎn)均是以自調(diào)度的方式適時(shí)的調(diào)度作業(yè)。

任務(wù)之間只需要一個(gè)注冊(cè)中心來(lái)對(duì)分布式場(chǎng)景下的任務(wù)狀態(tài)進(jìn)行協(xié)調(diào)即可,目前支持 ZooKeeper 和 ETCD 作為注冊(cè)中心。

架構(gòu)圖如下:

什么是elastic-job

ElasticJob 的產(chǎn)品定位與新版本設(shè)計(jì)理念

通過(guò)圖中可看出,ElasticJob Lite 的分布式作業(yè)節(jié)點(diǎn)通過(guò)選舉獲取主節(jié)點(diǎn),并通過(guò)主節(jié)點(diǎn)進(jìn)行分片。

分片完畢后,主節(jié)點(diǎn)與從節(jié)點(diǎn)并無(wú)二致,均以自我調(diào)度的方式執(zhí)行任務(wù)。

進(jìn)程級(jí)調(diào)度

ElasticJob Cloud 擁有進(jìn)程內(nèi)調(diào)度和進(jìn)程級(jí)別調(diào)度兩種方式。由于 ElasticJob Cloud  能夠?qū)ψ鳂I(yè)服務(wù)器的資源進(jìn)行控制,因此其作業(yè)類型可劃分為常駐任務(wù)和瞬時(shí)任務(wù)。

常駐任務(wù)類似于 ElasticJob  Lite,是進(jìn)程內(nèi)調(diào)度;瞬時(shí)任務(wù)則完全不同,它充分的利用了資源分配的削峰填谷能力,是進(jìn)程級(jí)的調(diào)度,每次任務(wù)的會(huì)啟動(dòng)全新的進(jìn)程處理。

ElasticJob Cloud 需要通過(guò) Mesos 對(duì)資源進(jìn)行控制,并且通過(guò)部署在 Mesos Master 的調(diào)度器進(jìn)行任務(wù)和資源的分配。Cloud  采用中心化架構(gòu),將調(diào)度中心的高可用交由 Mesos 管理。

它的架構(gòu)圖如下:

什么是elastic-job

ElasticJob 的產(chǎn)品定位與新版本設(shè)計(jì)理念

通過(guò)圖中可看出,ElasticJob Cloud 除了擁有 Lite 的全部能力之外,還擁有資源分配和任務(wù)分發(fā)的能力。

它將作業(yè)的開(kāi)發(fā)、打包、分發(fā)、調(diào)度、治理、分片等一些列的生命周期完全托管,是真正的作業(yè)云調(diào)度系統(tǒng)。

相比于 ElasticJob Lite 的簡(jiǎn)單易用,ElasticJob Cloud 對(duì) Mesos  的強(qiáng)依賴增加了系統(tǒng)部署的復(fù)雜度,因此更加適合大規(guī)模的作業(yè)系統(tǒng)。

ElasticJob 功能列表

ElasticJob 功能主要有彈性調(diào)度、資源分配、作業(yè)治理和可視化管控。

彈性調(diào)度

彈性調(diào)度是 ElasticJob 最重要的功能,也是這款產(chǎn)品名稱的由來(lái)。它是一款能夠讓任務(wù)通過(guò)分片進(jìn)行水平擴(kuò)展的任務(wù)處理系統(tǒng)。

ElasticJob 中任務(wù)分片項(xiàng)的概念,使得任務(wù)可以在分布式的環(huán)境下運(yùn)行,每臺(tái)任務(wù)服務(wù)器只運(yùn)行分配給該服務(wù)器的分片。

隨著服務(wù)器的增加或宕機(jī),ElasticJob  會(huì)近乎實(shí)時(shí)的感知服務(wù)器數(shù)量的變更,從而重新為分布式的任務(wù)服務(wù)器分配更加合理的任務(wù)分片項(xiàng),使得任務(wù)可以隨著資源的增加而提升效率。

舉例說(shuō)明,如果作業(yè)分為 4 片,用兩臺(tái)服務(wù)器執(zhí)行,則每個(gè)服務(wù)器分到 2 片,如下圖所示:

什么是elastic-job

ElasticJob 的產(chǎn)品定位與新版本設(shè)計(jì)理念

當(dāng)新增加作業(yè)服務(wù)器時(shí),ElasticJob  會(huì)通過(guò)注冊(cè)中心的臨時(shí)節(jié)點(diǎn)的變化感知到新服務(wù)器的存在,并在下次任務(wù)調(diào)度的時(shí)候重新分片,新的服務(wù)器會(huì)承載一部分作業(yè)分片。

分片如下圖所示:

什么是elastic-job

ElasticJob 的產(chǎn)品定位與新版本設(shè)計(jì)理念

當(dāng)作業(yè)服務(wù)器在運(yùn)行中宕機(jī)時(shí),注冊(cè)中心同樣會(huì)通過(guò)臨時(shí)節(jié)點(diǎn)感知,并將在下次運(yùn)行時(shí)將分片轉(zhuǎn)移至仍存活的服務(wù)器,以達(dá)到作業(yè)高可用的效果。

本次由于服務(wù)器宕機(jī)而未執(zhí)行完的作業(yè),則可以通過(guò)失效轉(zhuǎn)移的方式繼續(xù)執(zhí)行。

作業(yè)高可用如下圖所示:

什么是elastic-job

ElasticJob 的產(chǎn)品定位與新版本設(shè)計(jì)理念

資源分配

在導(dǎo)讀中提到過(guò),調(diào)度是指在適合的時(shí)間將適合的資源分配給任務(wù),并使其生效。

ElasticJob 具備資源分配的能力,它能夠像分布式的操作系統(tǒng)一樣調(diào)度任務(wù)。

資源分配是借由 Mesos 實(shí)現(xiàn)的,由 Mesos 負(fù)責(zé)分配任務(wù)聲明的所需資源(CPU 和內(nèi)存),并將分配出去的資源進(jìn)行隔離。ElasticJob  在獲取到資源之后才會(huì)執(zhí)行任務(wù)。

考慮到 Mesos 系統(tǒng)部署相對(duì)復(fù)雜,因此 ElasticJob 將這部分拆分至 ElasticJob Cloud 部分,供高級(jí)用戶使用。

隨著 Kubernetes 的強(qiáng)勁發(fā)展,ElasticJob 未來(lái)也會(huì)完成 Cloud 部分與它的對(duì)接。

作業(yè)治理

作業(yè)在分布式場(chǎng)景下的高可用、失效轉(zhuǎn)移、錯(cuò)過(guò)作業(yè)重新執(zhí)行等行為的治理和協(xié)調(diào)。

可視化管控端

主要包括作業(yè)的增刪改查管控端、執(zhí)行歷史記錄查詢、配置中心的管理等。

ElasticJob 典型應(yīng)用場(chǎng)景

ElasticJob 著重解決與復(fù)雜任務(wù)、資源導(dǎo)向任務(wù)和業(yè)務(wù)應(yīng)用任務(wù)這幾個(gè)方面的問(wèn)題。

復(fù)雜任務(wù)

數(shù)據(jù)遷移:如果將百億的數(shù)據(jù)從一組數(shù)據(jù)庫(kù)集群遷移至另一組數(shù)據(jù)庫(kù)集群,單線程的作業(yè)可能需要幾天到幾周不等。

通過(guò) ElasticJob 的彈性分片能力,可以大幅減少海量數(shù)據(jù)遷移所需要的時(shí)間。

資源導(dǎo)向任務(wù)

占用大量計(jì)算資源的報(bào)表作業(yè)。如果每天凌晨需要花費(fèi)數(shù)小時(shí)計(jì)算 T+1 的業(yè)務(wù)報(bào)表,沒(méi)有資源的管控,則無(wú)論報(bào)表作業(yè)是否啟動(dòng),都要為其分配足夠的資源。

ElasticJob 將作業(yè)分為常駐作業(yè)和瞬時(shí)作業(yè),對(duì)于報(bào)表類作業(yè),瞬時(shí)作業(yè)是非常適合的。

它能否在作業(yè)啟動(dòng)時(shí)獲取資源,在作業(yè)結(jié)束后歸還資源,做到真正的削峰填谷,更加合理的利用資源。

業(yè)務(wù)應(yīng)用

訂單拉取作業(yè):訂單系統(tǒng)大多采用消息中間件或作業(yè)的方式實(shí)現(xiàn)訂單拉取,用于將訂單生成系統(tǒng)和后端履約系統(tǒng)解耦,以便于前后端流量分離。

采用作業(yè)實(shí)現(xiàn)的訂單系統(tǒng),可以通過(guò) ElasticJob 實(shí)現(xiàn)訂單相關(guān)業(yè)務(wù)邏輯,可以方便的利用外圍系統(tǒng)所提供的依賴注入服務(wù),無(wú)縫的融入業(yè)務(wù)端研發(fā)。

ElasticJob 新版本設(shè)計(jì)理念

經(jīng)過(guò)了一個(gè)多月的開(kāi)發(fā),ElasticJob 社區(qū)近期計(jì)劃發(fā)布 3.0.0-alpha,以作為它進(jìn)入 Apache 軟件基金會(huì)的第一個(gè)發(fā)布版本。

它的主要功能包括:

作業(yè)生態(tài)圈

靈活定制化作業(yè)是 3.x 版本的最重要設(shè)計(jì)變革。新版本基于 Apache ShardingSphere 可插拔架構(gòu)的設(shè)計(jì)理念,打造了全新作業(yè)  API。

意在使開(kāi)發(fā)者能夠更加便捷且相互隔離的方式拓展作業(yè)類型,打造 ElasticJob 作業(yè)的生態(tài)圈。

ElasticJob 提供靈活的作業(yè) API,它將作業(yè)解耦為作業(yè)接口和執(zhí)行器接口。用戶可以定制化全新的作業(yè)類型,諸如腳本執(zhí)行、HTTP  服務(wù)執(zhí)行、大數(shù)據(jù)類作業(yè)、文件類作業(yè)等。

目前 ElasticJob 內(nèi)置了腳本執(zhí)行作業(yè),并且完全開(kāi)放了擴(kuò)展接口,開(kāi)發(fā)者可以通過(guò) SPI 的方式引入新的作業(yè)類型,并且可以便捷的回饋至社區(qū)。

多元化調(diào)度器

在保留原有的基于 Cron 的時(shí)間觸發(fā)調(diào)度器的基礎(chǔ)上,增加了一次性的調(diào)度 API,為 ElasticJob 增加了時(shí)間維度之外的全新調(diào)度維度。

微內(nèi)核&生態(tài)分離

抽象作業(yè)內(nèi)核模塊,將作業(yè)執(zhí)行軌跡追蹤等輔助功能以及作業(yè)生態(tài)等可擴(kuò)展模塊從內(nèi)核模塊完全抽離。

作業(yè)執(zhí)行軌跡追蹤模塊作為二級(jí)生態(tài),修改了之前只支持 MySQL 作為存儲(chǔ)介質(zhì)的限制,完全開(kāi)放持久化的適配。

未來(lái)規(guī)劃

3.0.0 的版本作為一個(gè)快速給社區(qū)回饋的版本,并未進(jìn)行顛覆性的革新,而是嘗試將項(xiàng)目?jī)?nèi)核一點(diǎn)一滴的解耦。

在未來(lái)的規(guī)劃中,ElasticJob 將大刀闊斧的向前邁進(jìn),主要的規(guī)劃如下:

作業(yè)依賴

支持基于有向無(wú)環(huán)圖(DAG)的作業(yè)依賴。依賴包含基于作業(yè)整體維度的依賴,以及基于作業(yè)分片項(xiàng)的依賴,打造更加靈活的作業(yè)治理解決方案。

調(diào)度執(zhí)行分離

將調(diào)度器和執(zhí)行器完全分離。調(diào)度器可以與執(zhí)行器一起部署,即為 ElasticJob Lite 的無(wú)中心化輕量級(jí)版本;調(diào)度器可以與執(zhí)行器分離部署,即為  ElasticJob Cloud 的資源管控的一站式分布式調(diào)度系統(tǒng)。

更加易用的云管產(chǎn)品

將目前僅支持 Mesos 的 ElasticJob cloud 打造為支持 Mesos 和 Kubernetes 的作業(yè)云管平臺(tái),并提供無(wú) Mesos 和  Kubernetes 也能夠獨(dú)立使用的不包含資源管控的純作業(yè)管控平臺(tái)。

可插拔生態(tài)

與 Apache ShardingSphere 一脈相承,ElasticJob 也將提供更加可插拔和模塊化架構(gòu),為開(kāi)發(fā)者提供基礎(chǔ)設(shè)施。

開(kāi)發(fā)者可以方便的基于 ElasticJob 二次開(kāi)發(fā),添加各種定制化功能,包括但不限于作業(yè)類型(如:大數(shù)據(jù)作業(yè)、HTTP  作業(yè)等)、注冊(cè)中心類型(如:Eureka 等)、執(zhí)行軌跡存儲(chǔ)介質(zhì)(如其他數(shù)據(jù)庫(kù)類型)等。

ElasticJob 的定位如下圖所示:

什么是elastic-job

ElasticJob 的產(chǎn)品定位與新版本設(shè)計(jì)理念

關(guān)于 ElasticJob 社區(qū)

ElasticJob 社區(qū)的目標(biāo)是成為和 Apache ShardingSphere 一樣的 Apache  軟件基金會(huì)的頂級(jí)項(xiàng)目,達(dá)成更廣泛的應(yīng)用。

項(xiàng)目重啟的這段時(shí)間,ElasticJob 持續(xù)在 GitHub 的周和月度排行榜上有名:

什么是elastic-job

最近一個(gè)月,ElasticJob 社區(qū)合并了 152 個(gè) Pull Requests,關(guān)閉了 105 個(gè) Issues;25個(gè)提交者總共 158  次提交,完成了4w+ 行代碼的改動(dòng)。

什么是elastic-job

感謝各位的閱讀,以上就是“什么是elastic-job”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)什么是elastic-job這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


本文標(biāo)題:什么是elastic-job
本文網(wǎng)址:http://weahome.cn/article/pdgcso.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部