国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于集群的標(biāo)識(shí)管理方法、標(biāo)識(shí)服務(wù)器及相應(yīng)的系統(tǒng)與流程

      文檔序號(hào):11657473閱讀:228來源:國知局
      用于集群的標(biāo)識(shí)管理方法、標(biāo)識(shí)服務(wù)器及相應(yīng)的系統(tǒng)與流程
      本發(fā)明一般地涉及分布式系統(tǒng)管理
      技術(shù)領(lǐng)域
      ,并且具體地,涉及用于集群或分布式系統(tǒng)的標(biāo)識(shí)管理方案。
      背景技術(shù)
      :隨著計(jì)算機(jī)技術(shù)的普及,分布式系統(tǒng)或集群正被越來越廣泛地應(yīng)用到各種業(yè)務(wù)領(lǐng)域。通過將多個(gè)主機(jī)集中在一起協(xié)同合作,分布式系統(tǒng)或集群能夠提供強(qiáng)大且靈活的處理能力。主機(jī)之間的合作一般通過各個(gè)主機(jī)上的不同進(jìn)程之間的合作來實(shí)現(xiàn)。在分布式系統(tǒng)中通常需要為各個(gè)主機(jī)中的進(jìn)程生成全局唯一標(biāo)識(shí)。目前,為滿足這個(gè)需求,在業(yè)內(nèi)歸納起來有以下四種方式。在小系統(tǒng)、小型應(yīng)用并且無分表、也不需要高效的情況下,可以使用數(shù)據(jù)庫自增標(biāo)識(shí)(id)。這種方式不失為便捷的方法,然而其要求系統(tǒng)不能對(duì)表進(jìn)行水平拆分,并且為了保證標(biāo)識(shí)的惟一性,使得處理性能上稍有遜色。還可以通過對(duì)系統(tǒng)中的主機(jī)進(jìn)行編號(hào),并且將該編號(hào)與自增id組合作為唯一標(biāo)識(shí)。這種方法具有實(shí)現(xiàn)簡單的特點(diǎn),其只要控制好自增部分的最大標(biāo)識(shí)即可。但是,這種編號(hào)的方法大大限制了分布式系統(tǒng)的規(guī)模,不能很好的橫向擴(kuò)展。另外,還有通過12位的年月日時(shí)分秒+隨機(jī)數(shù)的方式,其中隨機(jī)數(shù)的位數(shù)取決于系統(tǒng)吞吐量(tps)峰值。這種方式的缺點(diǎn)在于缺乏連續(xù)性,極易造成標(biāo)識(shí)的浪費(fèi)。最后是集中管理、批量分配的方式,其中在某個(gè)數(shù)據(jù)存儲(chǔ)介質(zhì)中集中管理全局標(biāo)識(shí)并且為系統(tǒng)中的各主機(jī)批量分配標(biāo)識(shí),例如根據(jù)每次請(qǐng)求分配1000個(gè)標(biāo)識(shí),而主機(jī)在標(biāo)識(shí)使用完之后再請(qǐng)求分配。該方法的缺點(diǎn)在于:對(duì)于分布式系統(tǒng)中的數(shù)據(jù)存儲(chǔ)介質(zhì)發(fā)生災(zāi)備和回寫這些情況時(shí),因數(shù)據(jù)存儲(chǔ)介質(zhì)被高頻修改,主備存儲(chǔ)介質(zhì)中的數(shù)據(jù)很容易出現(xiàn)不一致性,在分布式系統(tǒng)向不同的數(shù)據(jù)存儲(chǔ)介質(zhì)請(qǐng)求標(biāo)識(shí)的情況下,分配的標(biāo)識(shí)存在重復(fù)的風(fēng)險(xiǎn)。因此,所期望的是設(shè)計(jì)一種可靠、高效且適應(yīng)災(zāi)備的用于分布式系統(tǒng)的標(biāo)識(shí)管理方案。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明提供了一種用于集群或分布式系統(tǒng)的標(biāo)識(shí)管理方案,可改善上述問題。一方面,本發(fā)明提供了一種用于集群的標(biāo)識(shí)管理方法,其包括:從集群中的主機(jī)接收標(biāo)識(shí)請(qǐng)求,所述標(biāo)識(shí)請(qǐng)求包含預(yù)先為每個(gè)集群分配的集群編號(hào);以及基于與所述集群編號(hào)關(guān)聯(lián)記錄的當(dāng)前標(biāo)識(shí)為所述主機(jī)提供標(biāo)識(shí);其中,所述當(dāng)前標(biāo)識(shí)是在前次提供標(biāo)識(shí)之后基于所提供的標(biāo)識(shí)確定的、下次提供標(biāo)識(shí)的起始位置。如上所述的標(biāo)識(shí)管理方法,其中,所述標(biāo)識(shí)請(qǐng)求還包含預(yù)先為不同用途的標(biāo)識(shí)分配的類型編號(hào),并且所述方法還包括與所述類型編號(hào)關(guān)聯(lián)地記錄所述當(dāng)前標(biāo)識(shí)。如上所述的標(biāo)識(shí)管理方法,其中,所述標(biāo)識(shí)請(qǐng)求包含請(qǐng)求的標(biāo)識(shí)步長,并且為主機(jī)提供標(biāo)識(shí)包括基于所述標(biāo)識(shí)步長和所記錄的當(dāng)前標(biāo)識(shí)來確定要為所述主機(jī)提供的標(biāo)識(shí)。如上所述的標(biāo)識(shí)管理方法,其還包括:根據(jù)所述主機(jī)的狀態(tài)調(diào)整所述標(biāo)識(shí)步長。如上所述的標(biāo)識(shí)管理方法,其中,如果基于標(biāo)識(shí)步長和所記錄的當(dāng)前標(biāo)識(shí)所確定的最大標(biāo)識(shí)超出標(biāo)識(shí)的取值范圍,則以所述取值范圍的起點(diǎn)為當(dāng)前標(biāo)識(shí)來確定要為所述主機(jī)提供的標(biāo)識(shí)。如上所述的標(biāo)識(shí)管理方法,其中,所述標(biāo)識(shí)用整數(shù)數(shù)字表示,并且將每個(gè)標(biāo)識(shí)數(shù)字的最高位固定為對(duì)應(yīng)的集群編號(hào)。如上所述的標(biāo)識(shí)管理方法,其還包括:根據(jù)所述主機(jī)的業(yè)務(wù)情況動(dòng)態(tài)地調(diào)整標(biāo)識(shí)的長度位數(shù)。如上所述的標(biāo)識(shí)管理方法,其還包括:在本地存儲(chǔ)的服務(wù)編號(hào)與所述集群編號(hào)不同的情況下判斷是否提供標(biāo)識(shí);以及在確定要提供標(biāo)識(shí)的情況下,將所述服務(wù)編號(hào)用作所述集群編號(hào)。另一方面,本發(fā)明提供了一種用于集群的標(biāo)識(shí)服務(wù)器,其包括:請(qǐng)求接收裝置,用于從集群中的主機(jī)接收標(biāo)識(shí)請(qǐng)求,所述標(biāo)識(shí)請(qǐng)求包含預(yù)先為每個(gè)分布式系統(tǒng)分配的集群編號(hào);標(biāo)識(shí)記錄裝置,用于與所述集群編號(hào)關(guān)聯(lián)地記錄當(dāng)前標(biāo)識(shí)。以及標(biāo)識(shí)提供裝置,用于基于所述當(dāng)前標(biāo)識(shí)為所述主機(jī)提供標(biāo)識(shí);其中,所述當(dāng)前標(biāo)識(shí)是在前次提供標(biāo)識(shí)之后基于所提供的標(biāo)識(shí)確定的、下次提供標(biāo)識(shí)的起始位置。此外,本發(fā)明還提供了一種用于集群的標(biāo)識(shí)管理方法,其包括:生成標(biāo)識(shí)請(qǐng)求以為本地的進(jìn)程獲取標(biāo)識(shí),其中在所述標(biāo)識(shí)請(qǐng)求中包含預(yù)先為每個(gè)集群分配的集群編號(hào);以及向與所述集群對(duì)應(yīng)的標(biāo)識(shí)服務(wù)器發(fā)送所述標(biāo)識(shí)請(qǐng)求。如上所述的標(biāo)識(shí)管理方法,其中,所述標(biāo)識(shí)請(qǐng)求還包含預(yù)先為不同用途的標(biāo)識(shí)分配的類型編號(hào)。如上所述的標(biāo)識(shí)管理方法,其中,所述標(biāo)識(shí)請(qǐng)求還包含請(qǐng)求的標(biāo)識(shí)步長,并且所述標(biāo)識(shí)步長大于1。如上所述的標(biāo)識(shí)管理方法,其還包括:將所獲取的標(biāo)識(shí)存儲(chǔ)在本地的共享內(nèi)存中供本地的進(jìn)程獲?。灰约霸跇?biāo)識(shí)被用盡時(shí)再次向與所述集群對(duì)應(yīng)的標(biāo)識(shí)服務(wù)器發(fā)送標(biāo)識(shí)請(qǐng)求。又一方面,本發(fā)明提供了一種集群系統(tǒng)中的主機(jī),其包括:請(qǐng)求生成裝置,用于生成標(biāo)識(shí)請(qǐng)求以為本地的進(jìn)程獲取標(biāo)識(shí)的裝置,其中在所述標(biāo)識(shí)請(qǐng)求中包含預(yù)先為每個(gè)集群分配的集群編號(hào);以及請(qǐng)求發(fā)送裝置,用于向與所述集群對(duì)應(yīng)的標(biāo)識(shí)服務(wù)器發(fā)送所述標(biāo)識(shí)請(qǐng)求。此外,本發(fā)明還提供了一種集群系統(tǒng),其包括如上所述的主機(jī),以及如上所述的標(biāo)識(shí)服務(wù)器。另外,本發(fā)明還提供了一種分布式系統(tǒng),其包括多個(gè)集群,其中所述多個(gè)集群中的每一個(gè)包括如上所述的主機(jī),并且所述分布式系統(tǒng)還包括多個(gè)如上所述的標(biāo)識(shí)服務(wù)器,其中所述標(biāo)識(shí)服務(wù)器與所述集群一一對(duì)應(yīng)。附圖說明本發(fā)明的前述和其他目標(biāo)、特征和優(yōu)點(diǎn)根據(jù)下面對(duì)本發(fā)明的實(shí)施例的更具體的說明將是顯而易見的,這些實(shí)施例在附圖中被示意。圖1是根據(jù)本發(fā)明一個(gè)示例的分布式系統(tǒng)的示意圖。圖2是根據(jù)本發(fā)明一個(gè)示例的用于集群的標(biāo)識(shí)管理方法的示意流程圖。圖3是根據(jù)本發(fā)明另一個(gè)示例的分布式系統(tǒng)的示意圖。圖4是根據(jù)本發(fā)明另一示例的用于集群的標(biāo)識(shí)管理方法的示意流程圖。圖5是根據(jù)本發(fā)明一個(gè)示例的用于集群的標(biāo)識(shí)服務(wù)器的示意框圖。圖6是根據(jù)本發(fā)明一個(gè)示例的集群中的主機(jī)的示意框圖。具體實(shí)施方式現(xiàn)在參照附圖描述本發(fā)明的示意性示例,相同的附圖標(biāo)號(hào)表示相同的元件。下文描述的各示例有助于本領(lǐng)域技術(shù)人員透徹理解本發(fā)明,且各示例意在示例而非限制。圖中各元件、部件、模塊、裝置及設(shè)備本體的圖示僅示意性表明存在這些元件、部件、模塊、裝置及設(shè)備本體同時(shí)亦表明它們之間的相對(duì)關(guān)系,但并不用以限定它們的具體形狀;流程圖中各步驟的關(guān)系也不以所給出的順序?yàn)橄?,可根?jù)實(shí)際應(yīng)用進(jìn)行調(diào)整但不脫離本申請(qǐng)的保護(hù)范圍。在本文中,“集群”與“分布式系統(tǒng)”是兩個(gè)可以直接互換的術(shù)語。僅是為了描述清楚的目的,而采用了不同的稱呼。本領(lǐng)域技術(shù)人員能夠理解,在本文中“集群”和“分布式系統(tǒng)”均可以指示由多個(gè)處理器設(shè)備集中在一起協(xié)同工作的系統(tǒng),其中每個(gè)處理器設(shè)備可以被稱為“主機(jī)”、“服務(wù)器”或“主機(jī)服務(wù)器”。本領(lǐng)域技術(shù)人員能夠理解這些術(shù)語都是可以直接互換使用的。圖1是根據(jù)本發(fā)明一個(gè)示例的分布式系統(tǒng)的示意圖。如圖1所示,本文所指的分布式系統(tǒng)可以是集群a或集群b,也可以是由集群a和集群b以及類似的多個(gè)集群的總成。以集群a為例,其由多個(gè)主機(jī)構(gòu)成,例如圖1所示的h1、h2和h3。本領(lǐng)域技術(shù)人員能夠理解,圖1僅是示例性的,集群a或集群b或類似的集群能夠包含任意數(shù)量的主機(jī),并且由多個(gè)集群構(gòu)成的分布式系統(tǒng)也可以包含任意數(shù)量的主機(jī)集群。如圖1所示,在本發(fā)明中,為每個(gè)集群或分布式系統(tǒng)提供了標(biāo)識(shí)服務(wù)器,其中每個(gè)標(biāo)識(shí)服務(wù)器對(duì)應(yīng)于一個(gè)集群,用于為該集群中的所有主機(jī)提供標(biāo)識(shí)。例如,集群a標(biāo)識(shí)服務(wù)器為集群a中的主機(jī)h1-h3提供標(biāo)識(shí),而集群b標(biāo)識(shí)服務(wù)器為集群b中的主機(jī)h1-h3提供標(biāo)識(shí)。在一些示例中,可以將每個(gè)集群中的主機(jī)預(yù)先配置為向?qū)iT的標(biāo)識(shí)服務(wù)器請(qǐng)求標(biāo)識(shí)。下面將結(jié)合圖2-6來具體描述根據(jù)本發(fā)明的示例的標(biāo)識(shí)服務(wù)器和集群主機(jī)的操作。圖2是根據(jù)本發(fā)明一個(gè)示例的用于集群的標(biāo)識(shí)管理方法的示意流程圖。在實(shí)踐中,圖2所示的方法可以在標(biāo)識(shí)服務(wù)器處實(shí)現(xiàn)。如圖2所示,首先在步驟21處,標(biāo)識(shí)服務(wù)器從集群中的主機(jī)接收標(biāo)識(shí)請(qǐng)求。例如,集群a標(biāo)識(shí)服務(wù)器將從集群a的主機(jī)h1-h3接收標(biāo)識(shí)請(qǐng)求,而集群b標(biāo)識(shí)服務(wù)器從集群b的主機(jī)h1-h3接收標(biāo)識(shí)請(qǐng)求。一般來說,在本發(fā)明中,由標(biāo)識(shí)服務(wù)器接收的標(biāo)識(shí)請(qǐng)求包含預(yù)先為每個(gè)集群分配的集群編號(hào)。例如,集群a被分配集群編號(hào)1,而集群b被分配集群編號(hào)2。然而,本領(lǐng)域技術(shù)人員能夠理解本發(fā)明所設(shè)計(jì)的集群編號(hào)不限于是一位數(shù)字的形式。在不背離本發(fā)明的方案的情況下,還可以對(duì)集群編號(hào)位數(shù)進(jìn)行擴(kuò)展,來滿足更多集群中心的部署方案。進(jìn)一步地,在步驟23處,標(biāo)識(shí)服務(wù)器將基于與該集群編號(hào)關(guān)聯(lián)記錄的當(dāng)前標(biāo)識(shí)為發(fā)來請(qǐng)求的主機(jī)提供標(biāo)識(shí)。一般來說,在本發(fā)明中,該當(dāng)前標(biāo)識(shí)是在前次提供標(biāo)識(shí)之后基于所提供的標(biāo)識(shí)確定的、下次提供標(biāo)識(shí)的起始位置。換句話所,標(biāo)識(shí)服務(wù)器可以被配置為在每次分配標(biāo)識(shí)之后確定下次提供標(biāo)識(shí)的起始位置,并且將該起始位置與集群編號(hào)關(guān)聯(lián)存儲(chǔ),從而在下次從該集群中的主機(jī)收到標(biāo)識(shí)請(qǐng)求時(shí)從該起始位置,也就是當(dāng)前標(biāo)識(shí)開始針對(duì)新的請(qǐng)求分配標(biāo)識(shí)。應(yīng)注意的是,在本發(fā)明中,用于一個(gè)集群的標(biāo)識(shí)服務(wù)器對(duì)于該集群中的所有主機(jī)都是同等對(duì)待的,即前后兩次標(biāo)識(shí)請(qǐng)求可以來自集群中不同的主機(jī),但是標(biāo)識(shí)服務(wù)器僅針對(duì)集群編號(hào)下所記錄的當(dāng)前標(biāo)識(shí)來進(jìn)行標(biāo)識(shí)分配,而不區(qū)分主機(jī),這將保證在集群內(nèi)分配的標(biāo)識(shí)的唯一性,同時(shí)為集群提供了很強(qiáng)的橫向擴(kuò)展的能力。例如,當(dāng)集群a新增服務(wù)器主機(jī)h4時(shí),該主機(jī)h4將與集群內(nèi)的其他主機(jī)一致地被配置為向同一個(gè)標(biāo)識(shí)服務(wù)器請(qǐng)求標(biāo)識(shí)并且在請(qǐng)求中包含集群編號(hào)作為與標(biāo)識(shí)服務(wù)器建立連接的標(biāo)志,從而保證本集群內(nèi)的標(biāo)識(shí)唯一并且不用對(duì)標(biāo)識(shí)管理系統(tǒng)進(jìn)行任何改變。在一些示例中,來自主機(jī)的標(biāo)識(shí)請(qǐng)求還包含預(yù)先為不同用途的標(biāo)識(shí)分配的類型編號(hào),并且在標(biāo)識(shí)服務(wù)器處還可以包括與該類型編號(hào)關(guān)聯(lián)地記錄當(dāng)前標(biāo)識(shí)。在一些示例中,來自主機(jī)的標(biāo)識(shí)請(qǐng)求還可以包含請(qǐng)求的標(biāo)識(shí)步長,也就是一次需要請(qǐng)求的標(biāo)識(shí)的數(shù)量。也就是說,本發(fā)明所提供的方法支持標(biāo)識(shí)服務(wù)器批量地向主機(jī)提供標(biāo)識(shí),由此減少主機(jī)與服務(wù)器之間的通信,大大提高標(biāo)識(shí)分配的效率。在這種情況下,標(biāo)識(shí)服務(wù)器可以基于所收到的標(biāo)識(shí)步長和所記錄的當(dāng)前標(biāo)識(shí)來確定要為所述主機(jī)提供的標(biāo)識(shí)。在以下的表1和表2中分別給出了在集群a中記錄當(dāng)前標(biāo)識(shí)以及在集群b中記錄當(dāng)前標(biāo)識(shí)的示例:集群編號(hào)類型編號(hào)當(dāng)前標(biāo)識(shí)請(qǐng)求步長標(biāo)識(shí)長度位數(shù)1010000000001000101119999999201001012100000040000100012表1集群編號(hào)類型編號(hào)當(dāng)前標(biāo)識(shí)請(qǐng)求步長標(biāo)識(shí)長度位數(shù)2020000000001000102120000100001001022200000000000100012表2在以列表方式記錄配置信息的上述示例中,集群編號(hào)、類型編號(hào)、請(qǐng)求步長和標(biāo)識(shí)長度位數(shù)可以是對(duì)當(dāng)前請(qǐng)求中的信息的記錄。當(dāng)前標(biāo)識(shí)則將針對(duì)下次請(qǐng)求被更新。在響應(yīng)下次標(biāo)識(shí)請(qǐng)求時(shí),則可以根據(jù)列表中記錄的當(dāng)前標(biāo)識(shí)與請(qǐng)求中包含的標(biāo)識(shí)步長共同來確定要分配的標(biāo)識(shí)。例如,在針對(duì)本次請(qǐng)求分配了標(biāo)識(shí)1999999900~1999999919之后,就將1999999920作為當(dāng)前標(biāo)識(shí)被填入。如果下次請(qǐng)求中的標(biāo)識(shí)補(bǔ)償為50,則可以確定要分配的標(biāo)識(shí)為1999999920~1999999969,并且將1999999970記錄為當(dāng)前標(biāo)識(shí)。在一些示例中,可以規(guī)定如果基于標(biāo)識(shí)步長和所記錄的當(dāng)前標(biāo)識(shí)所確定的最大標(biāo)識(shí)超出標(biāo)識(shí)的取值范圍,則以所述取值范圍的起點(diǎn)為當(dāng)前標(biāo)識(shí)來確定要為所述主機(jī)提供的標(biāo)識(shí)。例如,在當(dāng)前標(biāo)識(shí)是1999999920、步長是100的情況下,兩數(shù)相加為2000000020,已經(jīng)大于該中心區(qū)間1000000000~1999999999,此時(shí)生成標(biāo)識(shí)就可以從1000000000重新開始,生成100個(gè)標(biāo)識(shí)給請(qǐng)求方,記入1000000100到表中作為當(dāng)前標(biāo)識(shí),而發(fā)出請(qǐng)求的主機(jī)獲取到的標(biāo)識(shí)是1000000000~1000000099。在一些示例中,標(biāo)識(shí)用整數(shù)數(shù)字表示,具有友好性。如果標(biāo)識(shí)的長度位數(shù)被配置為5位,則標(biāo)識(shí)在區(qū)間10000~99999內(nèi)使用。在一些示例中,可以循環(huán)地使用取值區(qū)間內(nèi)的所有標(biāo)識(shí)。在一些示例中,可以把集群編號(hào)作為固定為標(biāo)識(shí)的第一位。例如,還是假設(shè)標(biāo)識(shí)長度位數(shù)為5,則為集群a分配的標(biāo)識(shí)以1開頭,而為集群b分配的標(biāo)識(shí)以2開頭,實(shí)際用于每個(gè)集群的標(biāo)識(shí)區(qū)間為0~9999。在一些示例中,可以在標(biāo)識(shí)服務(wù)器端根據(jù)主機(jī)的狀態(tài)來調(diào)整分配標(biāo)識(shí)的步長。例如,主機(jī)可能希望一次請(qǐng)求1000個(gè)標(biāo)識(shí),然而在標(biāo)識(shí)服務(wù)器端判斷1000個(gè)標(biāo)識(shí)可能超出該主機(jī)的內(nèi)存容量,因此主動(dòng)將分配的標(biāo)識(shí)數(shù)量減少至100個(gè)。標(biāo)識(shí)服務(wù)器還可以根據(jù)例如主機(jī)上的業(yè)務(wù)強(qiáng)度、通信鏈路的容量等參數(shù)來對(duì)所分配的標(biāo)識(shí)的數(shù)量進(jìn)行調(diào)整,而不需要遵照請(qǐng)求中規(guī)定的標(biāo)識(shí)步長。在一些示例中,還可以在標(biāo)識(shí)服務(wù)器端根據(jù)發(fā)出請(qǐng)求的主機(jī)的業(yè)務(wù)情況或者整個(gè)集群的業(yè)務(wù)情況來動(dòng)態(tài)地調(diào)整標(biāo)識(shí)的長度位數(shù)。例如,在集群中的主機(jī)發(fā)生異常時(shí),可能不斷請(qǐng)求標(biāo)識(shí),標(biāo)識(shí)服務(wù)器可以相應(yīng)地?cái)U(kuò)大標(biāo)識(shí)長度位數(shù),例如根據(jù)異?;謴?fù)的耗時(shí)與系統(tǒng)的吞吐量計(jì)算出一個(gè)合適的長度,從而保證在這種情況下請(qǐng)求標(biāo)識(shí)在指定時(shí)間內(nèi)是唯一標(biāo)識(shí)。舉例來說,圖1所示的集群a中有100臺(tái)主機(jī),要求一天內(nèi)標(biāo)識(shí)不重復(fù),也就是要求所分配的標(biāo)識(shí)的生命周期為24小時(shí)。在100臺(tái)主機(jī)全部出現(xiàn)異常的極端情況下,可以將標(biāo)識(shí)長度位數(shù)擴(kuò)展為10。由此,即使所有主機(jī)剛獲取完一批標(biāo)識(shí),主機(jī)上保存本批標(biāo)識(shí)的共享內(nèi)存立刻被意外刪除,并且系統(tǒng)再重啟后有新的交易需要重新從標(biāo)識(shí)服務(wù)器上獲取新一批標(biāo)識(shí),把整個(gè)標(biāo)識(shí)區(qū)間耗盡需要重復(fù)的請(qǐng)求次數(shù)為:999999999/(100*1000)=10000次,假定每次增加步長1000,10位標(biāo)識(shí)長度位數(shù)有效位為后9位,最大可用值為999999999。進(jìn)一步假設(shè)每次異常情況耗時(shí)為2分鐘,則總共需要時(shí)間:10000*2=20000分鐘=333小時(shí)>24小時(shí)。由此,標(biāo)識(shí)服務(wù)器能夠通過根據(jù)實(shí)際情況動(dòng)態(tài)地調(diào)整標(biāo)識(shí)長度位數(shù)而使得集群能夠從容應(yīng)對(duì)極端的異常情況。本發(fā)明所提供的高效的基于集群的標(biāo)識(shí)管理方法以及采用該方法的標(biāo)識(shí)服務(wù)能夠良好地適應(yīng)大型集群系統(tǒng)獲取唯一標(biāo)識(shí)的需求,同時(shí)適應(yīng)災(zāi)備切換和系統(tǒng)雙活的部署方案。由于,集群或分布式系統(tǒng)內(nèi)的主機(jī)就標(biāo)識(shí)分配而言配置一致,非常有利于橫向擴(kuò)展。在本發(fā)明中,還可以通過靈活地配置標(biāo)識(shí)的屬性來適應(yīng)系統(tǒng)不同的業(yè)務(wù)需求。此外,本發(fā)明所提供的標(biāo)識(shí)管理方法還可以實(shí)現(xiàn)在災(zāi)備情況下的標(biāo)識(shí)唯一性,這將在下文中結(jié)合圖3來說明。圖3是根據(jù)本發(fā)明另一個(gè)示例的分布式系統(tǒng)的示意圖。對(duì)于大型的集群或分布式系統(tǒng)而言,災(zāi)備方面的考慮是必要的也是必須的。因此,在本發(fā)明的一些示例中,還可以為每個(gè)集群提供主標(biāo)識(shí)服務(wù)器和備標(biāo)識(shí)服務(wù)器,以防止其中一個(gè)標(biāo)識(shí)服務(wù)器出現(xiàn)故障,導(dǎo)致標(biāo)識(shí)分配出錯(cuò)。如在上文中所描述的那樣,可以為每個(gè)集群分配集群編號(hào),同時(shí)也可以為標(biāo)識(shí)服務(wù)器分配服務(wù)編號(hào),例如主標(biāo)識(shí)服務(wù)器被分配服務(wù)編號(hào)1,而備標(biāo)識(shí)服務(wù)器被分配服務(wù)編號(hào)2。以集群a為例,其可以被分配集群編號(hào)1,并且其在正常情況下僅向主標(biāo)識(shí)服務(wù)器請(qǐng)求標(biāo)識(shí)。當(dāng)主標(biāo)識(shí)服務(wù)器出現(xiàn)故障而無法提供標(biāo)識(shí)分配服務(wù)時(shí),可以有以下兩種處理方法。在第一種情況下,集群a中的主機(jī)可以被配置為在無法從主標(biāo)識(shí)服務(wù)器獲得標(biāo)識(shí)的情況下,以集群編號(hào)+1或者直接以集群編號(hào)2向備標(biāo)識(shí)服務(wù)器請(qǐng)求標(biāo)識(shí)。在第二種情況下,集群a始終以集群編號(hào)1向主標(biāo)識(shí)服務(wù)器發(fā)送標(biāo)識(shí)請(qǐng)求,該請(qǐng)求可以在主標(biāo)識(shí)服務(wù)器無法正常工作的情況下被轉(zhuǎn)送到備標(biāo)識(shí)服務(wù)器。備標(biāo)識(shí)服務(wù)器在檢測到本地存儲(chǔ)的服務(wù)編號(hào)與請(qǐng)求中所包含的集群編號(hào)不同的情況下可以首先判斷是否應(yīng)向該主機(jī)提供標(biāo)識(shí)。在確定要提供標(biāo)識(shí)的情況下,備標(biāo)識(shí)服務(wù)器可以將本地配置的服務(wù)編號(hào)用作集群編號(hào)。也就是說,在標(biāo)識(shí)服務(wù)器發(fā)生主備切換時(shí),備標(biāo)識(shí)服務(wù)器主動(dòng)將集群編號(hào)+1,或者說其主動(dòng)將自己本地的服務(wù)編號(hào)用作集群編號(hào)來生成標(biāo)識(shí)。如在上文中所提及的,標(biāo)識(shí)的最高位通常被固定為集群編號(hào),以確保標(biāo)識(shí)的惟一性。同樣地,通過備標(biāo)識(shí)服務(wù)器對(duì)集群編號(hào)的主動(dòng)修改,可以避免主備之間切換或者回切時(shí)的標(biāo)識(shí)重復(fù),也就是確保標(biāo)識(shí)的唯一性。圖4是根據(jù)本發(fā)明另一示例的用于集群的標(biāo)識(shí)管理方法的示意流程圖。在實(shí)踐中,圖4所示的方法可以在集群中的主機(jī)處實(shí)現(xiàn)。如圖4所示,主機(jī)首先在步驟41處生成標(biāo)識(shí)請(qǐng)求以為本地的進(jìn)程獲取標(biāo)識(shí)。如在上文中所描述的,該標(biāo)識(shí)請(qǐng)求中應(yīng)包含預(yù)先為每個(gè)集群分配的集群編號(hào)。進(jìn)而在步驟43中,主機(jī)向與其所處的集群對(duì)應(yīng)的標(biāo)識(shí)服務(wù)器發(fā)送標(biāo)識(shí)請(qǐng)求。以圖1所示的場景為例,集群a中的主機(jī)h1-h3將向集群a標(biāo)識(shí)服務(wù)器發(fā)送請(qǐng)求,而集群b中的主機(jī)h1-h3將向集群b標(biāo)識(shí)服務(wù)器發(fā)送請(qǐng)求。如在上文中所描述的,主機(jī)所發(fā)送的標(biāo)識(shí)請(qǐng)求還可以包含預(yù)先為不同用途的標(biāo)識(shí)分配的類型編號(hào)。此外,標(biāo)識(shí)請(qǐng)求還可以包含請(qǐng)求的標(biāo)識(shí)步長,并且所述標(biāo)識(shí)步長大于1。也就是說,集群中的主機(jī)能夠通過一次請(qǐng)求從標(biāo)識(shí)服務(wù)器獲得一批標(biāo)識(shí)。在一些示例中,主機(jī)可以被配置為將所獲取的標(biāo)識(shí),通常為一批多個(gè)標(biāo)識(shí)存儲(chǔ)在本地的共享內(nèi)存中供本地的進(jìn)程獲取。在圖1中以集群a中的主機(jī)h3為例用氣泡圖進(jìn)行了示意。每個(gè)主機(jī)中通常有多個(gè)進(jìn)程需要獲取標(biāo)識(shí),例如圖1所示的進(jìn)程a、b和c。每個(gè)進(jìn)程可以從本機(jī)共享內(nèi)存中獲取一段標(biāo)識(shí),這可以通過本領(lǐng)域中已有的或待開發(fā)的任何方式來實(shí)現(xiàn)。主機(jī)可以在標(biāo)識(shí)被用盡時(shí)再次向與集群對(duì)應(yīng)的標(biāo)識(shí)服務(wù)器發(fā)送標(biāo)識(shí)請(qǐng)求,以請(qǐng)求下一批標(biāo)識(shí)。圖5是根據(jù)本發(fā)明一個(gè)示例的用于集群的標(biāo)識(shí)服務(wù)器的示意框圖。如圖5所示,用于集群的標(biāo)識(shí)服務(wù)器500包括請(qǐng)求接收裝置51、標(biāo)識(shí)記錄裝置53以及標(biāo)識(shí)提供裝置。具體地,請(qǐng)求接收裝置51被配置用于從集群中的主機(jī)接收標(biāo)識(shí)請(qǐng)求。在本發(fā)明中,所接收的標(biāo)識(shí)請(qǐng)求將包含預(yù)先為每個(gè)分布式系統(tǒng)分配的集群編號(hào)。標(biāo)識(shí)記錄裝置53被配置用于與集群編號(hào)關(guān)聯(lián)地記錄當(dāng)前標(biāo)識(shí)。在本發(fā)明中,所述當(dāng)前標(biāo)識(shí)是在前次提供標(biāo)識(shí)之后基于所提供的標(biāo)識(shí)確定的、下次提供標(biāo)識(shí)的起始位置。標(biāo)識(shí)提供裝置55被配置用于基于所述當(dāng)前標(biāo)識(shí)為所述主機(jī)提供標(biāo)識(shí)。在本說明書中省去了對(duì)用于實(shí)現(xiàn)服務(wù)器或處理器的其他構(gòu)造的描述,以避免不必要的冗余。但本領(lǐng)域技術(shù)人員能夠理解圖5所示的結(jié)構(gòu)能夠被集成在任何已有或待開發(fā)的服務(wù)器或處理器中。圖5所示的標(biāo)識(shí)服務(wù)器能夠被配置為實(shí)現(xiàn)上文所描述的任何與本發(fā)明所提供的、在標(biāo)識(shí)服務(wù)器處實(shí)現(xiàn)的相關(guān)操作。本領(lǐng)域技術(shù)人員能夠理解,圖5所示的模塊劃分僅是示意性的,這些模塊能夠按照具體實(shí)現(xiàn)來集成或進(jìn)一步劃分,并且以任何軟件或硬件的形式來實(shí)現(xiàn)。圖6是根據(jù)本發(fā)明一個(gè)示例的集群中的主機(jī)的示意框圖。主機(jī)600包括請(qǐng)求生成裝置61以及請(qǐng)求發(fā)送裝置63。具體地,請(qǐng)求生成裝置61被配置用于生成標(biāo)識(shí)請(qǐng)求以為本地的進(jìn)程獲取標(biāo)識(shí)的裝置。在本發(fā)明中,請(qǐng)求生成裝置61將在所述標(biāo)識(shí)請(qǐng)求中包含預(yù)先為每個(gè)集群分配的集群編號(hào)。請(qǐng)求發(fā)送裝置63被配置用于向與該集群對(duì)應(yīng)的標(biāo)識(shí)服務(wù)器發(fā)送所述標(biāo)識(shí)請(qǐng)求。在本說明書中省去了對(duì)一般的集群主機(jī)的其他構(gòu)造的描述,以避免不必要的冗余。但本領(lǐng)域技術(shù)人員能夠理解圖6所示的結(jié)構(gòu)能夠被集成在任何已有或待開發(fā)的集群主機(jī)中。圖6所示的集群主機(jī)能夠被配置為實(shí)現(xiàn)上文所描述的任何與本發(fā)明所提供的、在集群主機(jī)處實(shí)現(xiàn)的相關(guān)操作。本領(lǐng)域技術(shù)人員能夠理解,圖6所示的模塊劃分僅是示意性的,這些模塊能夠按照具體實(shí)現(xiàn)來集成或進(jìn)一步劃分,并且以任何軟件或硬件的形式來實(shí)現(xiàn)。應(yīng)當(dāng)說明的是,以上具體實(shí)施方式僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制。盡管參照上述具體實(shí)施方式對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,依然可以對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行修改或?qū)Σ糠旨夹g(shù)特征進(jìn)行等同替換而不脫離本發(fā)明的實(shí)質(zhì),其均涵蓋在本發(fā)明請(qǐng)求保護(hù)的范圍中。當(dāng)前第1頁12
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1