新聞中心
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,越來(lái)越多的企業(yè)需要面對(duì)海量的數(shù)據(jù)處理和管理,而數(shù)據(jù)庫(kù)是其中至關(guān)重要的一環(huán)。然而,在面對(duì)數(shù)以千計(jì)的服務(wù)器和數(shù)以萬(wàn)計(jì)的數(shù)據(jù)庫(kù)表時(shí),如何保證數(shù)據(jù)的高效穩(wěn)定、以及管理的便利性已成為了一項(xiàng)極具挑戰(zhàn)性的任務(wù)。而Elastic Job正是為解決這個(gè)難題而設(shè)計(jì)的分布式數(shù)據(jù)庫(kù)管理工具,它不僅實(shí)現(xiàn)了數(shù)據(jù)自動(dòng)分片和負(fù)載均衡,還提供了一系列強(qiáng)大的管理功能。

梧州網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),梧州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為梧州上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的梧州做網(wǎng)站的公司定做!
什么是Elastic Job
Elastic Job是當(dāng)今主流的分布式數(shù)據(jù)庫(kù)管理工具之一,它是由阿里巴巴公司開發(fā)的一套開源項(xiàng)目,旨在為Java程序員提供面向大規(guī)模數(shù)據(jù)處理的可靠、高效、易用的解決方案。Elastic Job的核心功能是實(shí)現(xiàn)數(shù)據(jù)自動(dòng)分片、負(fù)載均衡,以及高可用性的分布式調(diào)度管理。
Elastic Job的特點(diǎn)
分布式處理
Elastic Job采用分布式處理模式,可以將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)服務(wù)器中,同時(shí)實(shí)現(xiàn)數(shù)據(jù)自動(dòng)分片和調(diào)度管理。它不僅提高了數(shù)據(jù)處理的效率和穩(wěn)定性,還大大減輕了服務(wù)器的負(fù)擔(dān)。
自動(dòng)化管理
Elastic Job擁有一套高效的自動(dòng)化管理系統(tǒng),可以實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)監(jiān)控、異常處理、備份和恢復(fù)等工作。并可根據(jù)業(yè)務(wù)需求進(jìn)行定制化配置,使得數(shù)據(jù)管理更加靈活方便。
易用性
Elastic Job的開發(fā)者十分注重易用性,它提供了豐富的API和開發(fā)文檔,讓開發(fā)者可以很輕松地集成該工具到項(xiàng)目中。除此之外,Elastic Job的界面也十分直觀明了,可以方便地進(jìn)行配置和管理。
強(qiáng)大的擴(kuò)展性
Elastic Job是非常靈活的工具,支持多種數(shù)據(jù)源,如關(guān)系型數(shù)據(jù)庫(kù)、NoSQL數(shù)據(jù)庫(kù)、MQ、Elasticsearch等。同時(shí),對(duì)于一些特定的場(chǎng)景,也可以自定義插件來(lái)擴(kuò)展它的功能。
Elastic Job的應(yīng)用場(chǎng)景
在實(shí)際的應(yīng)用中,Elastic Job常常被用于以下場(chǎng)景:
1. 高性能數(shù)據(jù)查詢
由于Elastic Job支持分布式存儲(chǔ)和自動(dòng)化調(diào)度,因此可以實(shí)現(xiàn)較高的并發(fā)性能。這使得它在處理大量數(shù)據(jù)查詢、數(shù)據(jù)分析等場(chǎng)景下非常有優(yōu)勢(shì)。
2. 實(shí)時(shí)數(shù)據(jù)處理
隨著互聯(lián)網(wǎng)應(yīng)用的日益廣泛,很多業(yè)務(wù)場(chǎng)景需要能夠處理大數(shù)據(jù)流,比如實(shí)時(shí)日志分析、實(shí)時(shí)監(jiān)控等。Elastic Job正是一款能夠滿足這些需求的高效工具。
3. 數(shù)據(jù)庫(kù)備份與恢復(fù)
對(duì)于大規(guī)模的數(shù)據(jù)存儲(chǔ)來(lái)說(shuō),備份和恢復(fù)是必不可少的工作,也是保證數(shù)據(jù)安全性的重要途徑。Elastic Job提供了數(shù)據(jù)自動(dòng)備份和高效恢復(fù)功能,可以為企業(yè)節(jié)省大量的手動(dòng)操作。
在當(dāng)今數(shù)字化時(shí)代,數(shù)據(jù)已經(jīng)成為企業(yè)經(jīng)營(yíng)的生命,而Elastic Job可以為企業(yè)在大規(guī)模數(shù)據(jù)管理方面提供有效的解決方案。通過分布式數(shù)據(jù)處理、自動(dòng)化管理、易用性和擴(kuò)展性等優(yōu)勢(shì),Elastic Job助力企業(yè)實(shí)現(xiàn)數(shù)據(jù)高效穩(wěn)定、便利管理,讓企業(yè)更好地進(jìn)行數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù)創(chuàng)新。
相關(guān)問題拓展閱讀:
- 分布式定時(shí)任務(wù)調(diào)度框架實(shí)踐
分布式定時(shí)任務(wù)調(diào)度框架實(shí)踐
分布式任務(wù)調(diào)度框架幾乎是每個(gè)大型應(yīng)用必備的工具,本文介紹了任務(wù)調(diào)度框架使用的需求背景和痛點(diǎn),對(duì)業(yè)界普遍使用的開源分布式任務(wù)調(diào)度框架的使用進(jìn)行了探究實(shí)踐,并分析了這幾種框架的優(yōu)劣勢(shì)和對(duì)自身業(yè)務(wù)的思考。
一、業(yè)務(wù)背景桐租
1.1 為什么需要使用定時(shí)任務(wù)調(diào)度
(1)時(shí)間驅(qū)動(dòng)處理場(chǎng)景:
整點(diǎn)發(fā)送優(yōu)惠券,每天更新收益,每天刷新標(biāo)簽數(shù)據(jù)和人群數(shù)據(jù)。
(2)批量處理數(shù)據(jù):
按月批量統(tǒng)計(jì)報(bào)表數(shù)據(jù),批量更新短信狀態(tài),實(shí)時(shí)性要求不高。
(3)異步執(zhí)行解耦:
活動(dòng)狀態(tài)刷新,異步執(zhí)行離線查詢,與內(nèi)部邏輯解耦。
1.2 使用需求和痛點(diǎn)
(1)任務(wù)執(zhí)行監(jiān)控告警能力。
(2)任務(wù)可靈活動(dòng)態(tài)配置,無(wú)需重啟。
(3)業(yè)務(wù)透明,低耦合,配置精簡(jiǎn),開發(fā)方便。
(4)易測(cè)試。
(5)高可用,無(wú)單點(diǎn)故障。
(6)任務(wù)不可重復(fù)執(zhí)行,防止邏輯異常。
(7)大任務(wù)的分發(fā)并行處理能力。
二、開源框架實(shí)踐與 探索
2.1 Java 原生 Timer 和
ScheduledExecutorService
2.1.1 Timer使用
Timer缺陷:
由于上述缺陷,盡量不要使用Timer, idea中也會(huì)明確提示,使用ScheduledThreadPoolExecutor替代Timer 。
2.1.2 ScheduledExecutorService使用
ScheduledExecutorService對(duì)于Timer的缺陷進(jìn)行了修補(bǔ),首先ScheduledExecutorService內(nèi)部實(shí)現(xiàn)是ScheduledThreadPool線程池,可以支持多個(gè)任務(wù)并發(fā)執(zhí)行。
對(duì)于某一個(gè)線程執(zhí)行的任務(wù)出現(xiàn)異常,也會(huì)處理,不會(huì)影響其他線程任務(wù)的執(zhí)行,另外ScheduledExecutorService是基于時(shí)間間隔的延遲,執(zhí)行不會(huì)由于系統(tǒng)時(shí)間的改變發(fā)生變化。
當(dāng)然,ScheduledExecutorService也有自己的局限性局塵兆:只能根據(jù)任務(wù)的延遲來(lái)進(jìn)行調(diào)度,無(wú)法滿足基于絕對(duì)時(shí)間和日歷調(diào)度的需求。
2.2 Spring Task
2.2.1 Spring Task 使用
spring task 是spring自主開發(fā)的輕量級(jí)定時(shí)任務(wù)框架,不需要依賴其他額外的包,配置較為簡(jiǎn)單。
此處使用注解配置
2.2.2 Spring Task缺陷
Spring Task 本身不支持持久化,也沒有推出官方的分布式集群模式,只能靠開發(fā)者在業(yè)務(wù)應(yīng)用中自己手動(dòng)擴(kuò)展實(shí)現(xiàn),無(wú)法滿足可視化,易配置的需求。
2.3 永遠(yuǎn)經(jīng)典的 Quartz
2.3.1 基本介紹
Quartz框架是Java領(lǐng)域最著名的開源任務(wù)調(diào)度工具,也是目前事實(shí)上的定時(shí)任務(wù)標(biāo)準(zhǔn),幾乎全部的開源定時(shí)任務(wù)框架都是基于Quartz核心調(diào)度構(gòu)建而成。
2.3.2 原理解析
核心組件和架構(gòu)
關(guān)鍵概念
(1)
Scheduler
:任務(wù)兄沖調(diào)度器,是執(zhí)行任務(wù)調(diào)度的控制器。本質(zhì)上是一個(gè)計(jì)劃調(diào)度容器,注冊(cè)了全部Trigger和對(duì)應(yīng)的JobDetail, 使用線程池作為任務(wù)運(yùn)行的基礎(chǔ)組件,提高任務(wù)執(zhí)行效率。
(2)
Trigger
:觸發(fā)器,用于定義任務(wù)調(diào)度的時(shí)間規(guī)則,告訴任務(wù)調(diào)度器什么時(shí)候觸發(fā)任務(wù),其中CronTrigger是基于cron表達(dá)式構(gòu)建的功能強(qiáng)大的觸發(fā)器。
(3)
Calendar
:日歷特定時(shí)間點(diǎn)的。一個(gè)trigger可以包含多個(gè)Calendar,可用于排除或包含某些時(shí)間點(diǎn)。
(4)
JobDetail
:是一個(gè)可執(zhí)行的工作,用來(lái)描述Job實(shí)現(xiàn)類及其它相關(guān)的靜態(tài)信息,如Job的名稱、監(jiān)聽器等相關(guān)信息。
(5)
Job
:任務(wù)執(zhí)行接口,只有一個(gè)execute方法,用于執(zhí)行真正的業(yè)務(wù)邏輯。
(6)
JobStore
:任務(wù)存儲(chǔ)方式,主要有RAMJobStore和JDBCJobStore,RAMJobStore是存儲(chǔ)在JVM的內(nèi)存中,有丟失和數(shù)量受限的風(fēng)險(xiǎn),JDBCJobStore是將任務(wù)信息持久化到數(shù)據(jù)庫(kù)中,支持集群。
2.3.3 實(shí)踐說(shuō)明
(1)關(guān)于Quartz的基本使用
(2)業(yè)務(wù)使用要滿足動(dòng)態(tài)修改和重啟不丟失, 一般需要使用數(shù)據(jù)庫(kù)進(jìn)行保存。
(3)組件化
(4)擴(kuò)展
2.3.4 缺陷和不足
(1)需要把任務(wù)信息持久化到業(yè)務(wù)數(shù)據(jù)表,和業(yè)務(wù)有耦合。
(2)調(diào)度邏輯和執(zhí)行邏輯并存于同一個(gè)項(xiàng)目中,在機(jī)器性能固定的情況下,業(yè)務(wù)和調(diào)度之間不可避免地會(huì)相互影響。
(3)quartz集群模式下,是通過數(shù)據(jù)庫(kù)獨(dú)占鎖來(lái)唯一獲取任務(wù),任務(wù)執(zhí)行并沒有實(shí)現(xiàn)完善的負(fù)載均衡機(jī)制。
2.4 輕量級(jí)神器 XXL-JOB
2.4.1 基本介紹
XXL-JOB是一個(gè)輕量級(jí)分布式任務(wù)調(diào)度平臺(tái),主打特點(diǎn)是平臺(tái)化,易部署,開發(fā)迅速、學(xué)習(xí)簡(jiǎn)單、輕量級(jí)、易擴(kuò)展,代碼仍在持續(xù)更新中。
主要提供了任務(wù)的動(dòng)態(tài)配置管理、任務(wù)監(jiān)控和統(tǒng)計(jì)報(bào)表以及調(diào)度日志幾大功能模塊,支持多種運(yùn)行模式和路由策略,可基于對(duì)應(yīng)執(zhí)行器機(jī)器集群數(shù)量進(jìn)行簡(jiǎn)單分片數(shù)據(jù)處理。
2.4.2 原理解析
2.1.0版本前核心調(diào)度模塊都是基于quartz框架,2.1.0版本開始自研調(diào)度組件,移除quartz依賴 ,使用時(shí)間輪調(diào)度。
2.4.3 實(shí)踐說(shuō)明
詳細(xì)配置和介紹參考官方文檔。
2.4.3.1 demo使用:
@JobHandler(value=”offlineTaskJobHandler”) ,實(shí)現(xiàn)業(yè)務(wù)邏輯即可。(注:此次引入了dubbo,后文介紹)。
(滑動(dòng)可查看)
示例2:分片廣播任務(wù)。
(滑動(dòng)可查看)
2.4.3.2 整合dubbo
(1)引入dubbo-spring-boot-starter和業(yè)務(wù)facade jar包依賴。
(滑動(dòng)可查看)
(2)配置文件加入dubbo消費(fèi)端配置(可根據(jù)環(huán)境定義多個(gè)配置文件,通過profile切換)。
(滑動(dòng)可查看)
(3)代碼中通過@Reference注入facade接口即可。
(滑動(dòng)可查看)
(4)啟動(dòng)程序加入@EnableDubboConfiguration注解。
(滑動(dòng)可查看)
2.4.4 任務(wù)可視化配置
內(nèi)置了平臺(tái)項(xiàng)目,方便了開發(fā)者對(duì)任務(wù)的管理和執(zhí)行日志的監(jiān)控,并提供了一些便于測(cè)試的功能。
2.4.5 擴(kuò)展
(1)任務(wù)監(jiān)控和報(bào)表的優(yōu)化。
(2)任務(wù)報(bào)警方式的擴(kuò)展,比如加入告警中心,提供內(nèi)部消息,短信告警。
(3)對(duì)實(shí)際業(yè)務(wù)內(nèi)部執(zhí)行出現(xiàn)異常情況下的不同監(jiān)控告警和重試策略。
2.5 高可用 Elastic-Job
2.5.1 基本介紹
Elastic-Job是一個(gè)分布式調(diào)度解決方案,由兩個(gè)相互獨(dú)立的子項(xiàng)目Elastic-Job-Lite和Elastic-Job-Cloud組成。
Elastic-Job-Lite定位為輕量級(jí)無(wú)中心化解決方案,使用jar包的形式提供分布式任務(wù)的協(xié)調(diào)服務(wù)。
Elastic-Job-Cloud使用Mesos + Docker的解決方案,額外提供資源治理、應(yīng)用分發(fā)以及進(jìn)程隔離等服務(wù)。
可惜的是已經(jīng)兩年沒有迭代更新記錄。
2.5.2 原理解析
2.5.3 實(shí)踐說(shuō)明
2.5.3.1 demo使用
(1)安裝zookeeper,配置注冊(cè)中心config,配置文件加入注冊(cè)中心zk的配置。
(滑動(dòng)可查看)
(滑動(dòng)可查看)
(2)配置數(shù)據(jù)源config,并配置文件中加入數(shù)據(jù)源配置。
(滑動(dòng)可查看)
(滑動(dòng)可查看)
(3)配置事件config。
(滑動(dòng)可查看)
(4)為了便于靈活配置不同的任務(wù)觸發(fā)事件,加入ElasticSimpleJob注解。
(滑動(dòng)可查看)
(5)對(duì)配置進(jìn)行初始化。
(滑動(dòng)可查看)
(6)實(shí)現(xiàn) SimpleJob接口,按上文中方法整合dubbo, 完成業(yè)務(wù)邏輯。
(滑動(dòng)可查看)
2.6 其余開源框架
(1)
Saturn
:Saturn是唯品會(huì)開源的一個(gè)分布式任務(wù)調(diào)度平臺(tái),在Elastic Job的基礎(chǔ)上進(jìn)行了改造。
(2)
SIA-TASK
:是宜信開源的分布式任務(wù)調(diào)度平臺(tái)。
三、優(yōu)劣勢(shì)對(duì)比和業(yè)務(wù)場(chǎng)景適配思考
業(yè)務(wù)思考:
四、結(jié)語(yǔ)
對(duì)于并發(fā)場(chǎng)景不是特別高的系統(tǒng)來(lái)說(shuō),xxl-job配置部署簡(jiǎn)單易用,不需要引入多余的組件,同時(shí)提供了可視化的控制臺(tái),使用起來(lái)非常友好,是一個(gè)比較好的選擇。希望直接利用開源分布式框架能力的系統(tǒng),建議根據(jù)自身的情況來(lái)進(jìn)行合適的選型。
附:參考文獻(xiàn)
高可用架構(gòu)
改變互聯(lián)網(wǎng)的構(gòu)建方式
elastic job 數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于elastic job 數(shù)據(jù)庫(kù),Elastic Job:大規(guī)模數(shù)據(jù)庫(kù)管理的利器,分布式定時(shí)任務(wù)調(diào)度框架實(shí)踐的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。
當(dāng)前題目:ElasticJob:大規(guī)模數(shù)據(jù)庫(kù)管理的利器(elasticjob數(shù)據(jù)庫(kù))
網(wǎng)站路徑:http://www.dlmjj.cn/article/dpsoeos.html


咨詢
建站咨詢
