摘要:定時任務(wù)的執(zhí)行在分布式系統(tǒng)中很常見的一個問題,如果多臺機(jī)器同時執(zhí)行相同的定時任務(wù),業(yè)務(wù)復(fù)雜則可能出現(xiàn)災(zāi)難性的后果。開源客戶端,使用的選舉功能可以實現(xiàn)提供了兩種選舉方案和。而則一直持有,除非調(diào)用方法,否則它不會釋放領(lǐng)導(dǎo)權(quán)。
定時任務(wù)的執(zhí)行在分布式系統(tǒng)中很常見的一個問題,如果多臺機(jī)器同時執(zhí)行相同的定時任務(wù),業(yè)務(wù)復(fù)雜則可能出現(xiàn)災(zāi)難性的后果。
Zookeeper開源客戶端Curator,使用Curator的leader選舉功能可以實現(xiàn)
Curator提供了兩種選舉方案:Leader Latch和Leader Election。
(1)Leader Latch:隨機(jī)從候選著中選出一臺作為leader,選中之后除非調(diào)用close()釋放leadship,否則其他的后選擇無法成為leader。
(2)Leader Election:通過LeaderSelectorListener可以對領(lǐng)導(dǎo)權(quán)進(jìn)行控制,在適當(dāng)?shù)臅r候釋放領(lǐng)導(dǎo)權(quán),這樣每個節(jié)點都有可能獲得領(lǐng)導(dǎo)權(quán)。而LeaderLatch則一直持有l(wèi)eadership,除非調(diào)用close方法,否則它不會釋放領(lǐng)導(dǎo)權(quán)。
我們這里用的是Leader Election。
1.Maven依賴
org.apache.curator curator-recipes 2.10.0 org.apache.curator curator-framework 2.10.0
2.代碼
測試執(zhí)行方法
Curator提供了兩種方法來實現(xiàn)Leader選舉,不僅僅用在定時任務(wù)上,其他場景也可以使用。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71275.html
摘要:架構(gòu)消息代理,作為臨時儲存任務(wù)的中間媒介,為提供了隊列服務(wù)。生產(chǎn)者將任務(wù)發(fā)送到,消費者再從獲取任務(wù)。如果使用,則有可能發(fā)生突然斷電之類的問題造成突然終止后的數(shù)據(jù)丟失等后果。任務(wù)調(diào)度器,負(fù)責(zé)調(diào)度并觸發(fā)定時周期任務(wù)。 架構(gòu) showImg(https://segmentfault.com/img/bVbmDXa?w=831&h=413); Broker 消息代理,作為臨時儲存任務(wù)的中間媒...
摘要:也是自帶的一個基于線程池設(shè)計的定時任務(wù)類。其每個調(diào)度任務(wù)都會分配到線程池中的一個線程執(zhí)行,所以其任務(wù)是并發(fā)執(zhí)行的,互不影響。 原創(chuàng)不易,如需轉(zhuǎn)載,請注明出處https://www.cnblogs.com/baixianlong/p/10659045.html,否則將追究法律責(zé)任?。?! 一、在JAVA開發(fā)領(lǐng)域,目前可以通過以下幾種方式進(jìn)行定時任務(wù) 1、單機(jī)部署模式 Timer:jdk中...
摘要:當(dāng)觸發(fā)定時任務(wù)時,一臺服務(wù)的任務(wù)進(jìn)入切面,通過方法為唯一的加鎖,如果當(dāng)前不存在,將放入緩存,并返回通過設(shè)置鎖超時時間,結(jié)束后跳出執(zhí)行定時任務(wù)方法。 問題描述 將帶有定時任務(wù)的項目部署在單臺測試環(huán)境上,完全沒問題。生產(chǎn)上是兩臺集群服務(wù)器,項目部署上去發(fā)現(xiàn)定時任務(wù)的模塊同時在兩臺機(jī)器上各執(zhí)行了一遍,這將會導(dǎo)致其他意外的發(fā)生。 解決方案----redis分布式鎖 使用redis分布式鎖,為定...
閱讀 3206·2021-09-06 15:02
閱讀 2254·2019-08-30 15:48
閱讀 3450·2019-08-29 11:08
閱讀 3294·2019-08-26 13:55
閱讀 2456·2019-08-26 13:35
閱讀 3172·2019-08-26 12:11
閱讀 2610·2019-08-26 11:48
閱讀 894·2019-08-26 11:42