基于多任務(wù)系統(tǒng)的分布式系統(tǒng)和方法
【專利摘要】本發(fā)明提供了一種基于多任務(wù)系統(tǒng)的分布式系統(tǒng),包括:分配單元,用于為各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例分配處理資源,以及在所述各系統(tǒng)節(jié)點(diǎn)中的一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),將所述一個(gè)系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例未處理的資源分配給指定系統(tǒng)實(shí)例,其中,所述指定系統(tǒng)實(shí)例是所述各系統(tǒng)節(jié)點(diǎn)中與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例。相應(yīng)地,本發(fā)明還提供了一種基于多任務(wù)系統(tǒng)的分布式方法。根據(jù)本發(fā)明的技術(shù)方案,能夠使各系統(tǒng)相互承接而又不相互爭搶資源,可避免資源的重復(fù)處理和遺漏。
【專利說明】基于多任務(wù)系統(tǒng)的分布式系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體而言,涉及一種基于多任務(wù)系統(tǒng)的分布式系統(tǒng)和一種基于多任務(wù)系統(tǒng)的分布式方法。
【背景技術(shù)】
[0002]目前分布式系統(tǒng)的實(shí)現(xiàn)有很多,大多是通過實(shí)現(xiàn)一個(gè)獨(dú)立于集群之外的監(jiān)視進(jìn)程實(shí)現(xiàn)的。常用的數(shù)據(jù)通同步的方法主要有以下幾種:
[0003]設(shè)置或安裝第三方程序或硬件提供的功能,實(shí)時(shí)監(jiān)視分布式中任務(wù)執(zhí)行情況,并據(jù)此進(jìn)行合理資源分配。雖然通過第三方程序或硬件提供的功能可監(jiān)控任務(wù)執(zhí)行情況,但仍會(huì)出現(xiàn)系統(tǒng)之間爭搶資源的問題,導(dǎo)致資源的重復(fù)處理或遺漏。
[0004]因此,需要一種新的分布式系統(tǒng),可使參與負(fù)載的各系統(tǒng)實(shí)例之間相互承接而又相互獨(dú)立,可避免資源的重復(fù)處理或遺漏。
【發(fā)明內(nèi)容】
[0005]考慮到相關(guān)技術(shù)中出現(xiàn)的技術(shù)問題,本發(fā)明所要解決的技術(shù)問題在于,提供一種基于多任務(wù)系統(tǒng)的分布式技術(shù),可使參與負(fù)載的各系統(tǒng)實(shí)例之間相互承接而又相互獨(dú)立,可避免資源的重復(fù)處理或遺漏。
[0006]有鑒于此,根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于多任務(wù)系統(tǒng)的分布式系統(tǒng),包括:分配單元,用于為各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例分配處理資源,以及在所述各系統(tǒng)節(jié)點(diǎn)中的一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),將所述一個(gè)系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例未處理的資源分配給指定系統(tǒng)實(shí)例,其中,所述指定系統(tǒng)實(shí)例是所述各系統(tǒng)節(jié)點(diǎn)中與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例。
[0007]在該技術(shù)方案中,系統(tǒng)節(jié)點(diǎn)之間具有相互承接關(guān)系,當(dāng)某系統(tǒng)節(jié)點(diǎn)發(fā)生故障時(shí),將此系統(tǒng)節(jié)點(diǎn)未處理的資源分配給監(jiān)控該系統(tǒng)節(jié)點(diǎn)的系統(tǒng)節(jié)點(diǎn),避免資源的遺漏處理;各系統(tǒng)節(jié)點(diǎn)處理本節(jié)點(diǎn)被分配到的資源,由于各系統(tǒng)節(jié)點(diǎn)的職能相同,且各系統(tǒng)節(jié)點(diǎn)之間相互獨(dú)立,因此避免了資源的爭搶。
[0008]在上述技術(shù)方案中,優(yōu)選的,還可以包括:承接關(guān)系確定單元,用于根據(jù)各所述系統(tǒng)實(shí)例的啟動(dòng)順序,排列所述各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例,形成環(huán)狀結(jié)構(gòu),根據(jù)所述環(huán)狀結(jié)構(gòu)中各系統(tǒng)實(shí)例的連接關(guān)系,確定各系統(tǒng)節(jié)點(diǎn)之間的承接關(guān)系。
[0009]在該技術(shù)方案中,通過各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例之間的啟動(dòng)時(shí)間關(guān)系,確定各系統(tǒng)節(jié)點(diǎn)之間的承接關(guān)系,通過這種方式確定各系統(tǒng)節(jié)點(diǎn)的唯一監(jiān)控系統(tǒng)節(jié)點(diǎn)。
[0010]在上述技術(shù)方案中,優(yōu)選的,所述承接關(guān)系確定單元用于在所述環(huán)狀結(jié)構(gòu)中,按照順時(shí)針順序,將與所述一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的下一個(gè)系統(tǒng)節(jié)點(diǎn)作為與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn),或者在所述環(huán)狀結(jié)構(gòu)中,按照逆時(shí)針順序,將與所述一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的上一個(gè)系統(tǒng)節(jié)點(diǎn)作為與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)。
[0011]在上述技術(shù)方案中,優(yōu)選的,所述承接關(guān)系確定單元包括:刪除子單元,用于在所述一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),在所述環(huán)狀結(jié)構(gòu)中刪除所述一個(gè)系統(tǒng)節(jié)點(diǎn);增加子單元,用于在增加新系統(tǒng)節(jié)點(diǎn)時(shí),基于所述新系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例的啟動(dòng)時(shí)間,在所述環(huán)狀結(jié)構(gòu)中最后一個(gè)啟動(dòng)的系統(tǒng)節(jié)點(diǎn)的后面添加所述新系統(tǒng)節(jié)點(diǎn)。各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例是利用在環(huán)狀結(jié)構(gòu)中的相對位置進(jìn)行互相感知的,當(dāng)發(fā)現(xiàn)系統(tǒng)實(shí)例退出環(huán)狀結(jié)構(gòu)或新的系統(tǒng)實(shí)例加入環(huán)狀結(jié)構(gòu)時(shí),不影響整體邏輯,保證了資源分配處理的準(zhǔn)確性。
[0012]在上述任一技術(shù)方案中,優(yōu)選的,還可以包括:記錄單元,記錄所述各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例到數(shù)據(jù)庫中簽到的時(shí)間,判斷各所述系統(tǒng)實(shí)例最后一次的簽到時(shí)間與當(dāng)前時(shí)間之間的時(shí)間間隔;故障確定單元,在所述時(shí)間間隔大于等于時(shí)間間隔閾值時(shí),確定與所述系統(tǒng)實(shí)例對應(yīng)的系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障,關(guān)閉所述系統(tǒng)實(shí)例。
[0013]當(dāng)系統(tǒng)實(shí)例很久沒有到數(shù)據(jù)庫簽到,可認(rèn)為與該系統(tǒng)實(shí)例對應(yīng)的系統(tǒng)節(jié)點(diǎn)出現(xiàn)了故障,不能正常處理所分配到的資源,因此,由與該故障系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)接替該故障系統(tǒng)節(jié)點(diǎn)未完成的任務(wù),保證資源不會(huì)被遺漏。
[0014]根據(jù)本發(fā)明的另一方面,還提供了一種基于多任務(wù)系統(tǒng)的分布式方法,包括:為各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例分配處理資源;在所述各系統(tǒng)節(jié)點(diǎn)中的一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),將所述一個(gè)系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例未處理的資源分配給指定系統(tǒng)實(shí)例,其中,所述指定系統(tǒng)實(shí)例是所述各系統(tǒng)節(jié)點(diǎn)中與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例。
[0015]在該技術(shù)方案中,系統(tǒng)節(jié)點(diǎn)之間具有相互承接關(guān)系,當(dāng)某系統(tǒng)節(jié)點(diǎn)發(fā)生故障時(shí),將此系統(tǒng)節(jié)點(diǎn)未處理的資源分配給監(jiān)控該系統(tǒng)節(jié)點(diǎn)的系統(tǒng)節(jié)點(diǎn),避免資源的遺漏處理;各系統(tǒng)節(jié)點(diǎn)處理本節(jié)點(diǎn)被分配到的資源,由于各系統(tǒng)節(jié)點(diǎn)的職能相同,且各系統(tǒng)節(jié)點(diǎn)之間相互獨(dú)立,因此避免了資源的爭搶。
[0016]在上述技術(shù)方案中,優(yōu)選的,所述承接關(guān)系的確定過程包括:根據(jù)各所述系統(tǒng)實(shí)例的啟動(dòng)順序,排列所述各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例,形成環(huán)狀結(jié)構(gòu);根據(jù)所述環(huán)狀結(jié)構(gòu)中各系統(tǒng)實(shí)例的連接關(guān)系,確定各系統(tǒng)節(jié)點(diǎn)之間的承接關(guān)系。通過各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例之間的啟動(dòng)時(shí)間關(guān)系,確定各系統(tǒng)節(jié)點(diǎn)之間的承接關(guān)系,通過這種方式確定各系統(tǒng)節(jié)點(diǎn)的唯一監(jiān)控系統(tǒng)節(jié)點(diǎn)。
[0017]在上述技術(shù)方案中,優(yōu)選的,在所述環(huán)狀結(jié)構(gòu)中,按照順時(shí)針順序,將與所述一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的下一個(gè)系統(tǒng)節(jié)點(diǎn)作為與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn),或者在所述環(huán)狀結(jié)構(gòu)中,按照逆時(shí)針順序,將與所述一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的上一個(gè)系統(tǒng)節(jié)點(diǎn)作為與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)。
[0018]在上述技術(shù)方案中,優(yōu)選的,在所述一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),在所述環(huán)狀結(jié)構(gòu)中刪除所述一個(gè)系統(tǒng)節(jié)點(diǎn);在增加新系統(tǒng)節(jié)點(diǎn)時(shí),基于所述新系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例的啟動(dòng)時(shí)間,在所述環(huán)狀結(jié)構(gòu)中最后一個(gè)啟動(dòng)的系統(tǒng)節(jié)點(diǎn)的后面添加所述新系統(tǒng)節(jié)點(diǎn)。
[0019]各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例是利用在環(huán)狀結(jié)構(gòu)中的相對位置進(jìn)行互相感知的,當(dāng)發(fā)現(xiàn)系統(tǒng)實(shí)例退出環(huán)狀結(jié)構(gòu)或新的系統(tǒng)實(shí)例加入環(huán)狀結(jié)構(gòu)時(shí),不影響整體邏輯,保證了資源分配處理的準(zhǔn)確性。
[0020]在上述任一技術(shù)方案中,優(yōu)選的,所述故障的確定過程包括:記錄所述各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例到數(shù)據(jù)庫中簽到的時(shí)間,判斷各所述系統(tǒng)實(shí)例最后一次的簽到時(shí)間與當(dāng)前時(shí)間之間的時(shí)間間隔;在所述時(shí)間間隔大于等于時(shí)間間隔閾值時(shí),確定與所述系統(tǒng)實(shí)例對應(yīng)的系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障,關(guān)閉所述系統(tǒng)實(shí)例。
[0021]當(dāng)系統(tǒng)實(shí)例很久沒有到數(shù)據(jù)庫簽到,可認(rèn)為與該系統(tǒng)實(shí)例對應(yīng)的系統(tǒng)節(jié)點(diǎn)出現(xiàn)了故障,不能正常處理所分配到的資源,因此,由與該故障系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)接替該故障系統(tǒng)節(jié)點(diǎn)未完成的任務(wù),保證資源不會(huì)被遺漏。
[0022]將根據(jù)本發(fā)明的分布式系統(tǒng)應(yīng)用在多個(gè)相同職能的包含多任務(wù)的系統(tǒng)實(shí)例負(fù)載時(shí),如果這樣的系統(tǒng)集群用來處理某數(shù)據(jù)資源:由于系統(tǒng)實(shí)例之間的職能相同,采用獨(dú)立分配原則,各自獨(dú)立處理各自被分配到的資源,避免會(huì)出現(xiàn)爭搶資源(并發(fā)重復(fù)處理);各系統(tǒng)節(jié)點(diǎn)之間相互承接,當(dāng)某系統(tǒng)節(jié)點(diǎn)發(fā)生故障后,此系統(tǒng)節(jié)點(diǎn)未來得及處理的資源將重新被分配給另一個(gè)指定的系統(tǒng)節(jié)點(diǎn)繼續(xù)被處理,避免已被分配資源的系統(tǒng)故障而使這部分資源被遺漏處理。
【專利附圖】
【附圖說明】
[0023]圖1示出了根據(jù)本發(fā)明的實(shí)施例的基于多任務(wù)系統(tǒng)的分布式系統(tǒng)的框圖;
[0024]圖2示出了根據(jù)本發(fā)明的實(shí)施例的基于多任務(wù)系統(tǒng)的分布式方法的流程圖;
[0025]圖3示出了根據(jù)本發(fā)明的實(shí)施例的動(dòng)態(tài)變化后的環(huán)狀結(jié)構(gòu)示意圖;
[0026]圖4示出了根據(jù)本發(fā)明的實(shí)施例的動(dòng)態(tài)變化后的環(huán)狀結(jié)構(gòu)示意圖;
[0027]圖5示出了根據(jù)本發(fā)明的實(shí)施例的分布式系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0028]為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0029]在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實(shí)施,因此,本發(fā)明并不限于下面公開的具體實(shí)施例的限制。
[0030]圖1示出了根據(jù)本發(fā)明的實(shí)施例的基于多任務(wù)系統(tǒng)的分布式系統(tǒng)的框圖。
[0031]如圖1所示,根據(jù)本發(fā)明的實(shí)施例的基于多任務(wù)系統(tǒng)的分布式系統(tǒng)100,包括:分配單元102,用于為各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例分配處理資源,以及在各系統(tǒng)節(jié)點(diǎn)中的一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),將一個(gè)系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例未處理的資源分配給指定系統(tǒng)實(shí)例,其中,指定系統(tǒng)實(shí)例是各系統(tǒng)節(jié)點(diǎn)中與一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例。
[0032]由于系統(tǒng)節(jié)點(diǎn)之間具有相互承接關(guān)系,因此當(dāng)某系統(tǒng)節(jié)點(diǎn)發(fā)生故障時(shí),可將此系統(tǒng)節(jié)點(diǎn)未處理的資源分配給監(jiān)控該系統(tǒng)節(jié)點(diǎn)的系統(tǒng)節(jié)點(diǎn),避免資源的遺漏處理;各系統(tǒng)節(jié)點(diǎn)處理本節(jié)點(diǎn)被分配到的資源,由于各系統(tǒng)節(jié)點(diǎn)的職能相同,且各系統(tǒng)節(jié)點(diǎn)之間相互獨(dú)立,因此避免了資源的爭搶(并發(fā)重復(fù)處理)。
[0033]優(yōu)選的,根據(jù)本發(fā)明的實(shí)施例的基于多任務(wù)系統(tǒng)的分布式系統(tǒng)100還可以包括:承接關(guān)系確定單元104,用于根據(jù)各系統(tǒng)實(shí)例的啟動(dòng)順序,排列各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例,形成環(huán)狀結(jié)構(gòu),根據(jù)環(huán)狀結(jié)構(gòu)中各系統(tǒng)實(shí)例的連接關(guān)系,確定各系統(tǒng)節(jié)點(diǎn)之間的承接關(guān)系。
[0034]通過各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例之間的啟動(dòng)時(shí)間關(guān)系,確定各系統(tǒng)節(jié)點(diǎn)之間的承接關(guān)系,通過這種方式確定各系統(tǒng)節(jié)點(diǎn)的唯一監(jiān)控系統(tǒng)節(jié)點(diǎn)。
[0035]在上述技術(shù)方案中,優(yōu)選的,承接關(guān)系確定單元104用于在環(huán)狀結(jié)構(gòu)中,按照順時(shí)針順序,將與一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的下一個(gè)系統(tǒng)節(jié)點(diǎn)作為與一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn),或者在環(huán)狀結(jié)構(gòu)中,按照逆時(shí)針順序,將與一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的上一個(gè)系統(tǒng)節(jié)點(diǎn)作為與一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)。
[0036]優(yōu)選的,承接關(guān)系確定單元104可以包括:刪除子單元1042,用于在一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),在環(huán)狀結(jié)構(gòu)中刪除一個(gè)系統(tǒng)節(jié)點(diǎn);增加子單元1044,用于在增加新系統(tǒng)節(jié)點(diǎn)時(shí),基于新系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例的啟動(dòng)時(shí)間,在環(huán)狀結(jié)構(gòu)中最后Iv啟動(dòng)的系統(tǒng)節(jié)點(diǎn)的后面添加新系統(tǒng)節(jié)點(diǎn)。
[0037]各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例是利用在環(huán)狀結(jié)構(gòu)中的相對位置進(jìn)行互相感知的,當(dāng)發(fā)現(xiàn)系統(tǒng)實(shí)例退出環(huán)狀結(jié)構(gòu)或新的系統(tǒng)實(shí)例加入環(huán)狀結(jié)構(gòu)時(shí),不影響整體邏輯,保證了資源分配處理的準(zhǔn)確性。
[0038]優(yōu)選的,根據(jù)本發(fā)明的實(shí)施例的基于多任務(wù)系統(tǒng)的分布式系統(tǒng)100還可以包括:記錄單元106,記錄各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例到數(shù)據(jù)庫中簽到的時(shí)間,判斷各系統(tǒng)實(shí)例最后一次的簽到時(shí)間與當(dāng)前時(shí)間之間的時(shí)間間隔;故障確定單元108,在時(shí)間間隔大于等于時(shí)間間隔閾值時(shí),確定與系統(tǒng)實(shí)例對應(yīng)的系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障,關(guān)閉系統(tǒng)實(shí)例。
[0039]當(dāng)系統(tǒng)實(shí)例很久沒有到數(shù)據(jù)庫簽到,可認(rèn)為與該系統(tǒng)實(shí)例對應(yīng)的系統(tǒng)節(jié)點(diǎn)出現(xiàn)了故障,不能正常處理所分配到的資源,因此,由與該故障系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)接替該故障系統(tǒng)節(jié)點(diǎn)未完成的任務(wù),保證資源不會(huì)被遺漏。
[0040]將根據(jù)本發(fā)明的分布式系統(tǒng)應(yīng)用在多個(gè)相同職能的包含多任務(wù)的系統(tǒng)實(shí)例負(fù)載時(shí),如果這樣的系統(tǒng)集群用來處理某數(shù)據(jù)資源:由于系統(tǒng)實(shí)例之間的職能相同,采用獨(dú)立分配原則,各自獨(dú)立處理各自被分配到的資源,避免會(huì)出現(xiàn)爭搶資源(并發(fā)重復(fù)處理);各系統(tǒng)節(jié)點(diǎn)之間相互承接,當(dāng)某系統(tǒng)節(jié)點(diǎn)發(fā)生故障后,此系統(tǒng)節(jié)點(diǎn)未來得及處理的資源將重新被分配給另一個(gè)指定的系統(tǒng)節(jié)點(diǎn)繼續(xù)被處理,避免已被分配資源的系統(tǒng)故障而使這部分資源被遺漏處理。
[0041]圖2示出了根據(jù)本發(fā)明的實(shí)施例的基于多任務(wù)系統(tǒng)的分布式方法的流程圖。
[0042]如圖2所示,根據(jù)本發(fā)明的實(shí)施例的基于多任務(wù)系統(tǒng)的分布式方法,可以包括以下步驟:
[0043]步驟202,為各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例分配處理資源;步驟204,在各系統(tǒng)節(jié)點(diǎn)中的一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),將一個(gè)系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例未處理的資源分配給指定系統(tǒng)實(shí)例,其中,指定系統(tǒng)實(shí)例是各系統(tǒng)節(jié)點(diǎn)中與一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例。
[0044]由于系統(tǒng)節(jié)點(diǎn)之間具有相互承接關(guān)系,因此當(dāng)某系統(tǒng)節(jié)點(diǎn)發(fā)生故障時(shí),可將此系統(tǒng)節(jié)點(diǎn)未處理的資源分配給監(jiān)控該系統(tǒng)節(jié)點(diǎn)的系統(tǒng)節(jié)點(diǎn),避免資源的遺漏處理;各系統(tǒng)節(jié)點(diǎn)處理本節(jié)點(diǎn)被分配到的資源,由于各系統(tǒng)節(jié)點(diǎn)的職能相同,且各系統(tǒng)節(jié)點(diǎn)之間相互獨(dú)立,因此避免了資源的爭搶。
[0045]在上述技術(shù)方案中,優(yōu)選的,承接關(guān)系的確定過程包括:根據(jù)各系統(tǒng)實(shí)例的啟動(dòng)順序,排列各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例,形成環(huán)狀結(jié)構(gòu);根據(jù)環(huán)狀結(jié)構(gòu)中各系統(tǒng)實(shí)例的連接關(guān)系,確定各系統(tǒng)節(jié)點(diǎn)之間的承接關(guān)系。
[0046]通過各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例之間的啟動(dòng)時(shí)間關(guān)系,確定各系統(tǒng)節(jié)點(diǎn)之間的承接關(guān)系,通過這種方式確定各系統(tǒng)節(jié)點(diǎn)的唯一監(jiān)控系統(tǒng)節(jié)點(diǎn)。
[0047]在上述技術(shù)方案中,優(yōu)選的,在環(huán)狀結(jié)構(gòu)中,按照順時(shí)針順序,將與一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的下一個(gè)系統(tǒng)節(jié)點(diǎn)作為與一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn),或者在環(huán)狀結(jié)構(gòu)中,按照逆時(shí)針順序,將與一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的上一個(gè)系統(tǒng)節(jié)點(diǎn)作為與一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)。
[0048]在上述技術(shù)方案中,優(yōu)選的,在一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),在環(huán)狀結(jié)構(gòu)中刪除一個(gè)系統(tǒng)節(jié)點(diǎn);在增加新系統(tǒng)節(jié)點(diǎn)時(shí),基于新系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例的啟動(dòng)時(shí)間,在環(huán)狀結(jié)構(gòu)中最后Iv啟動(dòng)的系統(tǒng)節(jié)點(diǎn)的后面添加新系統(tǒng)節(jié)點(diǎn)。
[0049]各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例是利用在環(huán)狀結(jié)構(gòu)中的相對位置進(jìn)行互相感知的,當(dāng)發(fā)現(xiàn)系統(tǒng)實(shí)例退出環(huán)狀結(jié)構(gòu)或新的系統(tǒng)實(shí)例加入環(huán)狀結(jié)構(gòu)時(shí),不影響整體邏輯,保證了資源分配處理的準(zhǔn)確性。
[0050]在上述任一技術(shù)方案中,優(yōu)選的,故障的確定過程可以包括:記錄各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例到數(shù)據(jù)庫中簽到的時(shí)間,判斷各系統(tǒng)實(shí)例最后一次的簽到時(shí)間與當(dāng)前時(shí)間之間的時(shí)間間隔;在時(shí)間間隔大于等于時(shí)間間隔閾值時(shí),確定與所述系統(tǒng)實(shí)例對應(yīng)的系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障,關(guān)閉所述系統(tǒng)實(shí)例。
[0051]當(dāng)系統(tǒng)實(shí)例很久沒有到數(shù)據(jù)庫簽到,可認(rèn)為與該系統(tǒng)實(shí)例對應(yīng)的系統(tǒng)節(jié)點(diǎn)出現(xiàn)了故障,不能正常處理所分配到的資源,因此,由與該故障系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)接替該故障系統(tǒng)節(jié)點(diǎn)未完成的任務(wù),保證資源不會(huì)被遺漏。
[0052]下面結(jié)合圖3和圖4進(jìn)一步說明根據(jù)本發(fā)明的基于多任務(wù)系統(tǒng)的分布式方法。
[0053]參與分布式系統(tǒng)的各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例依次啟動(dòng),并記錄各系統(tǒng)節(jié)點(diǎn)的啟動(dòng)順序。然后按啟動(dòng)順序排列各系統(tǒng)節(jié)點(diǎn)并且首尾相接,形成環(huán)狀結(jié)構(gòu),如圖3所示,即使各系統(tǒng)實(shí)例分布在一個(gè)虛擬的環(huán)形裝置上(每個(gè)系統(tǒng)實(shí)例都要求有一個(gè)唯一標(biāo)識)。
[0054]為每個(gè)系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例分配資源,資源被分配后帶有相應(yīng)系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例的唯一標(biāo)識。
[0055]各系統(tǒng)實(shí)例活躍性到數(shù)據(jù)庫簽到,各系統(tǒng)實(shí)例可根據(jù)設(shè)定好的時(shí)間間隔持續(xù)簽至IJ,記錄每個(gè)系統(tǒng)實(shí)例最后一次簽到的時(shí)間。如果某系統(tǒng)實(shí)例最后一次簽到的時(shí)間與當(dāng)前時(shí)間之間的時(shí)間間隔已經(jīng)超過允許的最大時(shí)間間隔,則置該系統(tǒng)實(shí)例為已關(guān)閉,并由該系統(tǒng)實(shí)例的上一系統(tǒng)實(shí)例或下一系統(tǒng)實(shí)例接受此系統(tǒng)實(shí)例未完成的所有任務(wù)并繼續(xù)執(zhí)行,其中,該上一系統(tǒng)實(shí)例是在環(huán)形結(jié)構(gòu)中,沿順時(shí)針方向,該系統(tǒng)實(shí)例的上一個(gè)系統(tǒng)實(shí)例,該下一系統(tǒng)實(shí)例是在環(huán)形結(jié)構(gòu)中,沿逆時(shí)針方向,該系統(tǒng)實(shí)例的下一個(gè)系統(tǒng)實(shí)例。
[0056]需說明的是,各系統(tǒng)實(shí)例組成的環(huán)狀結(jié)構(gòu)是動(dòng)態(tài)的,各系統(tǒng)實(shí)例是利用相對位置互相感知的,所以被發(fā)現(xiàn)已關(guān)閉的系統(tǒng)實(shí)例退出環(huán)狀結(jié)構(gòu)或新的系統(tǒng)實(shí)例加入都不影響整體邏輯。原則上只要保證每個(gè)系統(tǒng)實(shí)例在同一時(shí)間有且只有一個(gè)監(jiān)控者。如圖3所示,在該環(huán)狀結(jié)構(gòu)中,系統(tǒng)節(jié)點(diǎn)I出現(xiàn)故障,其上的系統(tǒng)實(shí)例被關(guān)閉,因此退出該環(huán)狀結(jié)構(gòu),系統(tǒng)實(shí)例的減少不會(huì)影響系統(tǒng)實(shí)例之間的邏輯關(guān)系。又如圖4所示,在環(huán)狀結(jié)構(gòu)中增加了系統(tǒng)實(shí)例7,該系統(tǒng)實(shí)例7的加入同樣不會(huì)影響原系統(tǒng)實(shí)例之間的邏輯關(guān)系。
[0057]圖5示出了根據(jù)本發(fā)明的實(shí)施例的分布式系統(tǒng)的示意圖。
[0058]如圖5所示,該分布式系統(tǒng)包含了 4個(gè)服務(wù)器,分布式服務(wù)器A、服務(wù)器B、服務(wù)器C和服務(wù)器D,它們可共同訪問數(shù)據(jù)庫500。每個(gè)服務(wù)器在該分布式系統(tǒng)中可被認(rèn)為是系統(tǒng)節(jié)點(diǎn),每個(gè)系統(tǒng)節(jié)點(diǎn)上運(yùn)行相應(yīng)的系統(tǒng)實(shí)例,每個(gè)系統(tǒng)實(shí)例的職能相同,但相互獨(dú)立,具有唯一標(biāo)識。為每個(gè)系統(tǒng)實(shí)例分配了相應(yīng)的資源,并且每個(gè)資源帶上相應(yīng)系統(tǒng)實(shí)例的唯一標(biāo)識,實(shí)現(xiàn)資源的獨(dú)立處理,避免出現(xiàn)資源的爭搶?;诟飨到y(tǒng)實(shí)例的啟動(dòng)時(shí)間(每個(gè)系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例的啟動(dòng)時(shí)間均不一樣),建立系統(tǒng)節(jié)點(diǎn)之間的相互承接關(guān)系,利用相對位置實(shí)現(xiàn)互相感知,在其中某系統(tǒng)節(jié)點(diǎn)出現(xiàn)問題時(shí),可由與該系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)接替其為完成的任務(wù)繼續(xù)處理,以避免資源的遺漏處理,因此實(shí)現(xiàn)了一種安全穩(wěn)定的多個(gè)包含多任務(wù)的系統(tǒng)實(shí)例的分布式,使參與負(fù)載的各系統(tǒng)實(shí)例之間有序感應(yīng),進(jìn)而相互承接而又相互獨(dú)立不爭搶資源(并發(fā)重復(fù)處理),可完全避免被處理資源的重復(fù)處理和遺漏。
[0059]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于多任務(wù)系統(tǒng)的分布式系統(tǒng),其特征在于,包括: 分配單元,用于為各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例分配處理資源,以及在所述各系統(tǒng)節(jié)點(diǎn)中的一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),將所述一個(gè)系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例未處理的資源分配給指定系統(tǒng)實(shí)例, 其中,所述指定系統(tǒng)實(shí)例是所述各系統(tǒng)節(jié)點(diǎn)中與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例。
2.根據(jù)權(quán)利要求1所述的基于多任務(wù)系統(tǒng)的分布式系統(tǒng),其特征在于,還包括: 承接關(guān)系確定單元,用于根據(jù)各所述系統(tǒng)實(shí)例的啟動(dòng)順序,排列所述各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例,形成環(huán)狀結(jié)構(gòu),根據(jù)所述環(huán)狀結(jié)構(gòu)中各系統(tǒng)實(shí)例的連接關(guān)系,確定各系統(tǒng)節(jié)點(diǎn)之間的承接關(guān)系。
3.根據(jù)權(quán)利要求2所述的基于多任務(wù)系統(tǒng)的分布式系統(tǒng),其特征在于,所述承接關(guān)系確定單元用于在所述環(huán)狀結(jié)構(gòu)中,按照順時(shí)針順序,將與所述一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的下一個(gè)系統(tǒng)節(jié)點(diǎn)作為與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn),或者在所述環(huán)狀結(jié)構(gòu)中,按照逆時(shí)針順序,將與所述一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的上一個(gè)系統(tǒng)節(jié)點(diǎn)作為與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求2所述的基于多任務(wù)系統(tǒng)的分布式系統(tǒng),其特征在于,所述承接關(guān)系確定單元包括: 刪除子單元,用于在所述一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),在所述環(huán)狀結(jié)構(gòu)中刪除所述一個(gè)系統(tǒng)節(jié)點(diǎn); 增加子單元,用于在增加新系統(tǒng)節(jié)點(diǎn)時(shí),基于所述新系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例的啟動(dòng)時(shí)間,在所述環(huán)狀結(jié)構(gòu)中最后一個(gè)啟動(dòng)的系統(tǒng)節(jié)點(diǎn)的后面添加所述新系統(tǒng)節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的基于多任務(wù)系統(tǒng)的分布式系統(tǒng),其特征在于,還包括: 記錄單元,用于記錄所述各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例到數(shù)據(jù)庫中簽到的時(shí)間,判斷各所述系統(tǒng)實(shí)例最后一次的簽到時(shí)間與當(dāng)前時(shí)間之間的時(shí)間間隔; 故障確定單元,用于在所述時(shí)間間隔大于等于時(shí)間間隔閾值時(shí),確定與所述系統(tǒng)實(shí)例對應(yīng)的系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障,關(guān)閉所述系統(tǒng)實(shí)例。
6.一種基于多任務(wù)系統(tǒng)的分布式方法,其特征在于,包括: 為各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例分配處理資源; 在所述各系統(tǒng)節(jié)點(diǎn)中的一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),將所述一個(gè)系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例未處理的資源分配給指定系統(tǒng)實(shí)例, 其中,所述指定系統(tǒng)實(shí)例是所述各系統(tǒng)節(jié)點(diǎn)中與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例。
7.根據(jù)權(quán)利要求6所述的基于多任務(wù)系統(tǒng)的分布式方法,其特征在于,所述承接關(guān)系的確定過程包括: 根據(jù)各所述系統(tǒng)實(shí)例的啟動(dòng)順序,排列所述各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例,形成環(huán)狀結(jié)構(gòu); 根據(jù)所述環(huán)狀結(jié)構(gòu)中各系統(tǒng)實(shí)例的連接關(guān)系,確定各系統(tǒng)節(jié)點(diǎn)之間的承接關(guān)系。
8.根據(jù)權(quán)利要求7所述的基于多任務(wù)系統(tǒng)的分布式方法,其特征在于,在所述環(huán)狀結(jié)構(gòu)中,按照順時(shí)針順序,將與所述一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的下一個(gè)系統(tǒng)節(jié)點(diǎn)作為與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn),或者在所述環(huán)狀結(jié)構(gòu)中,按照逆時(shí)針順序,將與所述一個(gè)系統(tǒng)節(jié)點(diǎn)相鄰的上一個(gè)系統(tǒng)節(jié)點(diǎn)作為與所述一個(gè)系統(tǒng)節(jié)點(diǎn)具有承接關(guān)系的系統(tǒng)節(jié)點(diǎn)。
9.根據(jù)權(quán)利要求7所述的基于多任務(wù)系統(tǒng)的分布式方法,其特征在于,在所述一個(gè)系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障時(shí),在所述環(huán)狀結(jié)構(gòu)中刪除所述一個(gè)系統(tǒng)節(jié)點(diǎn); 在增加新系統(tǒng)節(jié)點(diǎn)時(shí),基于所述新系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例的啟動(dòng)時(shí)間,在所述環(huán)狀結(jié)構(gòu)中最后一個(gè)啟動(dòng)的系統(tǒng)節(jié)點(diǎn)的后面添加所述新系統(tǒng)節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求6至9中任一項(xiàng)所述的基于多任務(wù)系統(tǒng)的分布式方法,其特征在于,所述故障的確定過程包括: 記錄所述各系統(tǒng)節(jié)點(diǎn)上的系統(tǒng)實(shí)例到數(shù)據(jù)庫中簽到的時(shí)間,判斷各所述系統(tǒng)實(shí)例最后一次的簽到時(shí)間與當(dāng)前時(shí)間之間的時(shí)間間隔; 在所述時(shí)間間隔大于等于時(shí)間間隔閾值時(shí),確定與所述系統(tǒng)實(shí)例對應(yīng)的系統(tǒng)節(jié)點(diǎn)出現(xiàn)故障,關(guān)閉所述系統(tǒng)實(shí)例。
【文檔編號】G06F9/50GK104182277SQ201310189250
【公開日】2014年12月3日 申請日期:2013年5月21日 優(yōu)先權(quán)日:2013年5月21日
【發(fā)明者】劉營宇, 閆進(jìn)兵, 尚燦 申請人:北大方正集團(tuán)有限公司, 北京方正阿帕比技術(shù)有限公司