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