一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本申請(qǐng)實(shí)施例提供了一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法、裝置及系統(tǒng),該方法應(yīng)用于包括多個(gè)服務(wù)器的分布式系統(tǒng)中,其中每個(gè)服務(wù)器執(zhí)行下述步驟:當(dāng)前服務(wù)器接收由終端傳送的業(yè)務(wù)請(qǐng)求;當(dāng)前服務(wù)器利用預(yù)定義的服務(wù)器選取規(guī)則,確定出用于執(zhí)行業(yè)務(wù)請(qǐng)求的對(duì)應(yīng)服務(wù)器;對(duì)應(yīng)服務(wù)器執(zhí)行所述業(yè)務(wù)請(qǐng)求。本申請(qǐng)?jiān)跓o需專門設(shè)置鎖服務(wù)器的基礎(chǔ)上,實(shí)現(xiàn)業(yè)務(wù)的同步運(yùn)行,避免了現(xiàn)有使用鎖服務(wù)器所帶來的資源消耗較大,業(yè)務(wù)請(qǐng)求處理效率較低的問題。
【專利說明】一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]在現(xiàn)有的通信網(wǎng)絡(luò)技術(shù)中,分布式應(yīng)用程序是通過網(wǎng)絡(luò)來共同完成一項(xiàng)任務(wù)。通常為服務(wù)器/客戶端模式。
[0003]在分布式應(yīng)用下(例如常見的J2EE),由于多臺(tái)服務(wù)器在并行接收用戶請(qǐng)求,而有時(shí)候需要控制某個(gè)業(yè)務(wù)并發(fā)且保持同步運(yùn)行,如圖1所示的現(xiàn)有的分布式系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)包括若干服務(wù)器,例如服務(wù)器101、服務(wù)器102以及服務(wù)器103,另外,在此系統(tǒng)之外還專門設(shè)置有一臺(tái)鎖服務(wù)器104,分別與服務(wù)器101、服務(wù)器102以及服務(wù)器103進(jìn)行通信。系統(tǒng)在工作時(shí),終端105向鎖服務(wù)器104發(fā)送業(yè)務(wù)請(qǐng)求,由鎖服務(wù)器104進(jìn)行解鎖及分析確定出此業(yè)務(wù)請(qǐng)求由哪一臺(tái)服務(wù)器來執(zhí)行。例如,假設(shè)鎖服務(wù)器104確定出由服務(wù)器101執(zhí)行,會(huì)將上述業(yè)務(wù)請(qǐng)求發(fā)送給服務(wù)器101,由服務(wù)器101執(zhí)行該業(yè)務(wù)請(qǐng)求,并在執(zhí)行完成后將業(yè)務(wù)結(jié)果發(fā)送給鎖服務(wù)器104,由鎖服務(wù)器104返回給終端105,此系統(tǒng)只能通過系統(tǒng)之外設(shè)置的鎖服務(wù)器才能在分布式系統(tǒng)中實(shí)現(xiàn)業(yè)務(wù)的同步。
[0004]雖然上述分布式系統(tǒng)可以實(shí)現(xiàn)業(yè)務(wù)的同步運(yùn)行,但由于所有的業(yè)務(wù)請(qǐng)求都要首先送往鎖服務(wù)器進(jìn)行處理,由該鎖服務(wù)器確定出由哪一臺(tái)服務(wù)器執(zhí)行業(yè)務(wù),一方面,鎖服務(wù)器的資源消耗較大,對(duì)鎖服務(wù)器軟硬件資源的要求較高,另一個(gè)方面,隨著分布式系統(tǒng)業(yè)務(wù)復(fù)雜度和業(yè)務(wù)請(qǐng)求的頻繁度的不斷增加,對(duì)于這樣的架構(gòu),顯然也存在業(yè)務(wù)請(qǐng)求處理效率較低的問題。
【發(fā)明內(nèi)容】
[0005]本申請(qǐng)實(shí)施例提供了一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法、裝置及系統(tǒng),在無需專門設(shè)置鎖服務(wù)器的基礎(chǔ)上,實(shí)現(xiàn)業(yè)務(wù)的同步運(yùn)行,避免了現(xiàn)有使用鎖服務(wù)器所帶來的資源消耗較大,業(yè)務(wù)請(qǐng)求處理效率較低的問題。
[0006]基于上述問題,本申請(qǐng)實(shí)施例提供的一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法,包括:當(dāng)前服務(wù)器接收由終端傳送的業(yè)務(wù)請(qǐng)求;所述當(dāng)前服務(wù)器利用預(yù)定義的服務(wù)器選取規(guī)則,確定出用于執(zhí)行所述業(yè)務(wù)請(qǐng)求的對(duì)應(yīng)服務(wù)器;所述對(duì)應(yīng)服務(wù)器執(zhí)行所述業(yè)務(wù)請(qǐng)求。
[0007]本申請(qǐng)實(shí)施例提供的一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的裝置,包括:接收模塊,用于接收由終端傳送的業(yè)務(wù)請(qǐng)求;確定模塊,用于利用預(yù)定義的服務(wù)器選取規(guī)則確定出用于執(zhí)行所述業(yè)務(wù)請(qǐng)求的執(zhí)行服務(wù)器;執(zhí)行模塊,用于在所述執(zhí)行服務(wù)器為自身所屬裝置時(shí)執(zhí)行所述業(yè)務(wù)請(qǐng)求。
[0008]本申請(qǐng)實(shí)施例提供的一種分布式系統(tǒng),包括多個(gè)上述的裝置,所述裝置彼此之間相互通信。
[0009]本申請(qǐng)實(shí)施例提供了一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法、裝置及系統(tǒng),當(dāng)業(yè)務(wù)請(qǐng)求訪問到分布式系統(tǒng)中的服務(wù)器時(shí),利用預(yù)定義的服務(wù)器選取規(guī)則確定執(zhí)行此業(yè)務(wù)請(qǐng)求的服務(wù)器,然后由執(zhí)行服務(wù)器執(zhí)行業(yè)務(wù)請(qǐng)求,這樣一來,終端發(fā)起的業(yè)務(wù)請(qǐng)求會(huì)被分布式系統(tǒng)中的各個(gè)服務(wù)器分散處理,每一個(gè)服務(wù)器都有可能自己去執(zhí)行或調(diào)用其它服務(wù)器來執(zhí)行,而不會(huì)集中于某個(gè)或某些服務(wù)器來執(zhí)行,從而大大提高了分布式業(yè)務(wù)請(qǐng)求的處理效率;另外,這種分布式系統(tǒng)無需再專門設(shè)置鎖服務(wù)器去處理這些業(yè)務(wù)請(qǐng)求,節(jié)省了系統(tǒng)的成本。
【專利附圖】
【附圖說明】
[0010]圖1為現(xiàn)有的分布式鎖服務(wù)系統(tǒng)的結(jié)構(gòu)圖;
[0011]圖2為本申請(qǐng)實(shí)施例提供的分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法流程圖;
[0012]圖3為對(duì)應(yīng)服務(wù)器執(zhí)行業(yè)務(wù)請(qǐng)求步驟的流程圖;
[0013]圖4為本申請(qǐng)實(shí)施例提供的分布式系統(tǒng)執(zhí)行業(yè)務(wù)的裝置的內(nèi)部結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0014]下面結(jié)合說明書附圖,對(duì)本申請(qǐng)實(shí)施例提供的一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法、裝置及系統(tǒng)【具體實(shí)施方式】進(jìn)行說明。
[0015]為了方便說明本申請(qǐng)實(shí)施例提供的分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法,應(yīng)用于包括多個(gè)服務(wù)器的分布式系統(tǒng)中,以下將分布式系統(tǒng)中初始接收終端發(fā)送業(yè)務(wù)請(qǐng)求的服務(wù)器稱為當(dāng)前服務(wù)器;而分布式系統(tǒng)中實(shí)際執(zhí)行該業(yè)務(wù)請(qǐng)求的服務(wù)器稱為對(duì)應(yīng)服務(wù)器。
[0016]如圖2所示,本申請(qǐng)實(shí)施例提供的分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法,具體執(zhí)行以下步驟:·
[0017]S201:當(dāng)前服務(wù)器接收由終端傳送的業(yè)務(wù)請(qǐng)求,;
[0018]較佳地,在步驟S201中,終端傳送的業(yè)務(wù)請(qǐng)求可以是不同業(yè)務(wù)場(chǎng)景下的不同請(qǐng)求。例如,在分布式同步業(yè)務(wù)場(chǎng)景下,業(yè)務(wù)請(qǐng)求可以是“對(duì)瀏覽當(dāng)前頁面的次數(shù)進(jìn)行加I操作,并統(tǒng)計(jì)當(dāng)前瀏覽頁面的總次數(shù)”;在分布式時(shí)間程序場(chǎng)景下,業(yè)務(wù)請(qǐng)求又可以是與HTML5的資源文件時(shí)間管理程序有關(guān)的。業(yè)務(wù)請(qǐng)求還以是對(duì)應(yīng)各種不同的應(yīng)用的訪問請(qǐng)求等,在此不再--枚舉具體的業(yè)務(wù)請(qǐng)求。
[0019]S202:當(dāng)前服務(wù)器利用預(yù)定義的服務(wù)器選取規(guī)則,確定出用于執(zhí)行業(yè)務(wù)請(qǐng)求的對(duì)應(yīng)服務(wù)器;
[0020]S203:對(duì)應(yīng)服務(wù)器執(zhí)行業(yè)務(wù)請(qǐng)求。
[0021]進(jìn)一步地,在本申請(qǐng)實(shí)施例具體執(zhí)行時(shí),在執(zhí)行完上述步驟S201之后,執(zhí)行步驟S202之前,還可以包括下述步驟:
[0022]S204:當(dāng)前服務(wù)器判斷業(yè)務(wù)請(qǐng)求是否包含有能夠同步執(zhí)行的業(yè)務(wù)參數(shù)值,若是,則執(zhí)行步驟S202,若否,則執(zhí)行步驟S205 ;
[0023]S205:當(dāng)前服務(wù)器執(zhí)行業(yè)務(wù)請(qǐng)求,并將執(zhí)行業(yè)務(wù)請(qǐng)求的結(jié)果返回給終端。
[0024]具體地,在業(yè)務(wù)請(qǐng)求的業(yè)務(wù)參數(shù)信息中,有些業(yè)務(wù)參數(shù)的表現(xiàn)形式可以為唯一的數(shù)值信息,例如,網(wǎng)站頁面的ID,這些業(yè)務(wù)參數(shù)稱之為業(yè)務(wù)參數(shù)值,在當(dāng)前服務(wù)器接收到這種業(yè)務(wù)參數(shù)值時(shí),根據(jù)預(yù)定義的服務(wù)器選取規(guī)則,由指定的對(duì)應(yīng)服務(wù)器去執(zhí)行,即當(dāng)前服務(wù)器在接收到這種業(yè)務(wù)參數(shù)值時(shí),都會(huì)指定與該業(yè)務(wù)參數(shù)值對(duì)應(yīng)服務(wù)器去執(zhí)行,這樣就可以實(shí)現(xiàn)業(yè)務(wù)參數(shù)值在同一臺(tái)服務(wù)器上運(yùn)行目的。例如,終端正在瀏覽某一網(wǎng)站上的頁面,終端要讓分布式系統(tǒng)中的服務(wù)器來統(tǒng)計(jì)一個(gè)時(shí)間段內(nèi)瀏覽特定頁面的次數(shù),此時(shí)業(yè)務(wù)請(qǐng)求可以是“對(duì)瀏覽該特定頁面的次數(shù)進(jìn)行加I操作,并統(tǒng)計(jì)當(dāng)前瀏覽該特定頁面的總次數(shù)”,一般每個(gè)瀏覽頁面對(duì)應(yīng)一個(gè)服務(wù)ID,這個(gè)服務(wù)ID即作為該業(yè)務(wù)請(qǐng)求能夠同步執(zhí)行的業(yè)務(wù)參數(shù)值,還有其它類似包含能夠同步執(zhí)行的業(yè)務(wù)參數(shù)值的業(yè)務(wù)請(qǐng)求在此不再一一舉例;另外,還有一些業(yè)務(wù)請(qǐng)求的業(yè)務(wù)參數(shù)信息中不包含業(yè)務(wù)參數(shù)值或包含不能夠同步執(zhí)行的業(yè)務(wù)參數(shù)值,例如,“存儲(chǔ)所發(fā)送的商品信息”,這種請(qǐng)求就不包含有業(yè)務(wù)參數(shù)值。
[0025]在本申請(qǐng)實(shí)施例中,上述步驟S202中的預(yù)定義的服務(wù)器選取規(guī)則可以根據(jù)實(shí)際業(yè)務(wù)需求設(shè)定,并不僅限于下述實(shí)施例。例如,在業(yè)務(wù)請(qǐng)求包含有能夠同步執(zhí)行的業(yè)務(wù)參數(shù)值的情況下,當(dāng)前服務(wù)器利用預(yù)定義的服務(wù)器選取規(guī)則,確定出用于執(zhí)行業(yè)務(wù)請(qǐng)求的對(duì)應(yīng)服務(wù)器,可以通過下述方式實(shí)現(xiàn):
[0026]當(dāng)前服務(wù)器利用公式f (x)=y確定出對(duì)應(yīng)服務(wù)器,其中,X是業(yè)務(wù)請(qǐng)求所包含的能夠同步執(zhí)行的業(yè)務(wù)參數(shù)值,y是對(duì)應(yīng)服務(wù)器的索引;y不大于當(dāng)前在線服務(wù)器的總數(shù)。
[0027]具體地,f(x)=y可以是多種函數(shù),只要能夠根據(jù)X的值,唯一確定出y的值的函數(shù)都可。例如,利用業(yè)務(wù)參數(shù)值對(duì)當(dāng)前在線服務(wù)器的總數(shù)進(jìn)行取模運(yùn)算或取商運(yùn)算等,本申請(qǐng)實(shí)施例對(duì)于具體采用何種函數(shù)不做限定。
[0028]下面結(jié)合實(shí)施例1、實(shí)施例2和實(shí)施例3對(duì)當(dāng)前服務(wù)器利用公式f(x)=y確定對(duì)應(yīng)服務(wù)器的具體實(shí)現(xiàn)方式進(jìn)行說明。
[0029]實(shí)施例一:
[0030]當(dāng)前服務(wù)器利用業(yè)務(wù)參數(shù)值對(duì)當(dāng)前在線服務(wù)器的總數(shù)進(jìn)行取模運(yùn)算,得到對(duì)應(yīng)服務(wù)器的索引,并根據(jù)得到的對(duì)應(yīng)服務(wù)器的索引,在當(dāng)前在線服務(wù)器列表中查詢對(duì)應(yīng)的對(duì)應(yīng)服務(wù)器。
[0031]在本申請(qǐng)實(shí)施例中,由于分布式系統(tǒng)中當(dāng)前在線的服務(wù)器可以是變化的,那么為了保證每個(gè)業(yè)務(wù)請(qǐng)求都能夠及時(shí)得到處理,較佳地,分布式系統(tǒng)中的每個(gè)服務(wù)器還可以實(shí)時(shí)地根據(jù)分布式系統(tǒng)中各個(gè)服務(wù)器是否在線的狀態(tài)變化,更新當(dāng)前在線服務(wù)器列表;在本申請(qǐng)實(shí)施例中,具體地可以由設(shè)置于每個(gè)服務(wù)器中的組件(例如congServer組件或其它類似組件)獲取各個(gè)服務(wù)器是否在線的狀態(tài)變化信息。這樣,當(dāng)某個(gè)服務(wù)器收到業(yè)務(wù)請(qǐng)求時(shí),所確定出來的服務(wù)器能夠保證都是在線服務(wù)器。
[0032]下面以服務(wù)器a為當(dāng)前服務(wù)器進(jìn)行說明:
[0033]終端向服務(wù)器a發(fā)送一條“對(duì)瀏覽當(dāng)前頁面的次數(shù)進(jìn)行加I操作,并統(tǒng)計(jì)當(dāng)前瀏覽頁面的總次數(shù)”的業(yè)務(wù)請(qǐng)求,經(jīng)服務(wù)器a判斷后,此瀏覽頁面包含同步執(zhí)行的業(yè)務(wù)參數(shù)值,例如:ID=8,在終端向服務(wù)器a發(fā)送這一業(yè)務(wù)請(qǐng)求時(shí),服務(wù)器a獲取到的4臺(tái)當(dāng)前在線服務(wù)器分別是服務(wù)器a、服務(wù)器b、服務(wù)器c和服務(wù)器d,對(duì)每一臺(tái)服務(wù)器生成索引,并且根據(jù)索引和服務(wù)器標(biāo)識(shí)生成一個(gè)當(dāng)前在線服務(wù)器列表,如下表1:
[0034]表1
[0035]
【權(quán)利要求】
1.一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的方法,應(yīng)用于包括多個(gè)服務(wù)器的分布式系統(tǒng)中,其特征在于,包括: 當(dāng)前服務(wù)器接收由終端傳送的業(yè)務(wù)請(qǐng)求; 所述當(dāng)前服務(wù)器利用預(yù)定義的服務(wù)器選取規(guī)則,確定出用于執(zhí)行所述業(yè)務(wù)請(qǐng)求的對(duì)應(yīng)服務(wù)器; 所述對(duì)應(yīng)服務(wù)器執(zhí)行所述業(yè)務(wù)請(qǐng)求。
2.如權(quán)利要求1所述的方法,其特征在于,所述對(duì)應(yīng)服務(wù)器執(zhí)行所述業(yè)務(wù)請(qǐng)求,具體包括: 若所述對(duì)應(yīng)服務(wù)器為所述當(dāng)前服務(wù)器,則所述當(dāng)前服務(wù)器執(zhí)行所述業(yè)務(wù)請(qǐng)求,并將執(zhí)行業(yè)務(wù)請(qǐng)求的結(jié)果返回給終端。
3.如權(quán)利要求1所述的方法,其特征在于,所述對(duì)應(yīng)服務(wù)器執(zhí)行所述業(yè)務(wù)請(qǐng)求,具體包括: 若所述對(duì)應(yīng)服務(wù)器不為所述當(dāng)前服務(wù)器,則所述當(dāng)前服務(wù)器將終端發(fā)送的業(yè)務(wù)請(qǐng)求發(fā)送給所述對(duì)應(yīng)服務(wù)器,所述對(duì)應(yīng)服務(wù)器執(zhí)行所述業(yè)務(wù)請(qǐng)求,并將執(zhí)行的業(yè)務(wù)請(qǐng)求的結(jié)果直接返給終端;或者所述對(duì)應(yīng)服務(wù)器將執(zhí)行的業(yè)務(wù)請(qǐng)求的結(jié)果發(fā)送給所述當(dāng)前服務(wù)器,由所述當(dāng)前服務(wù)器將所述結(jié)果發(fā)送給所述終端。
4.如權(quán)利要求1所述的方法,其特征在于,所述當(dāng)前服務(wù)器利用預(yù)定義的服務(wù)器選取規(guī)則,確定出用于執(zhí)行所述業(yè)務(wù)請(qǐng)求的對(duì)應(yīng)服務(wù)器之前,還包括: 所述當(dāng)前服務(wù)器判斷所述業(yè)務(wù)請(qǐng)求是否包含有能夠同步執(zhí)行的業(yè)務(wù)參數(shù)值;若是,則執(zhí)行所述當(dāng)前服務(wù)器利用預(yù)定義的服務(wù)器選取規(guī)則,確定出用于執(zhí)行所述業(yè)務(wù)請(qǐng)求的對(duì)應(yīng)服務(wù)器。
5.如權(quán)利要求4所述的方法,其特征在于,還包括: 當(dāng)所述當(dāng)前服務(wù)器判斷所述業(yè)務(wù)請(qǐng)求不包含有能夠同步執(zhí)行的業(yè)務(wù)參數(shù)值時(shí),所述當(dāng)前服務(wù)器執(zhí)行所述業(yè)務(wù)請(qǐng)求,并將執(zhí)行業(yè)務(wù)請(qǐng)求的結(jié)果返回給終端。
6.如權(quán)利要求4所述的方法,其特征在于,所述當(dāng)前服務(wù)器利用預(yù)定義的服務(wù)器選取規(guī)則,確定出用于執(zhí)行所述業(yè)務(wù)請(qǐng)求的對(duì)應(yīng)服務(wù)器,包括: 所述當(dāng)前服務(wù)器利用公式f (x)=y確定出所述對(duì)應(yīng)服務(wù)器,其中,X是所述業(yè)務(wù)請(qǐng)求所包含的能夠同步執(zhí)行的業(yè)務(wù)參數(shù)值,I是所述對(duì)應(yīng)服務(wù)器的索引;y不大于當(dāng)前在線服務(wù)器的總數(shù)。
7.如權(quán)利要求6所述的方法,其特征在于,所述當(dāng)前服務(wù)器利用所述公式f(x)=y確定出所述對(duì)應(yīng)服務(wù)器,包括: 所述當(dāng)前服務(wù)器利用所述業(yè)務(wù)參數(shù)值與所述當(dāng)前在線服務(wù)器的總數(shù)進(jìn)行取模運(yùn)算或取商運(yùn)算,得到所述對(duì)應(yīng)服務(wù)器的索引; 根據(jù)得到的所述對(duì)應(yīng)服務(wù)器的索引,在當(dāng)前在線服務(wù)器列表中查詢對(duì)應(yīng)的所述對(duì)應(yīng)服務(wù)器。
8.如權(quán)利要求7所述的方法,其特征在于,所述當(dāng)前在線服務(wù)器列表通過下述方式生成: 所述當(dāng)前服務(wù)器針對(duì)當(dāng)前每一個(gè)在線服務(wù)器生成對(duì)應(yīng)的索引,所述索引為1~Ν的自然數(shù);將所有在線服務(wù)器的標(biāo)識(shí)和對(duì)應(yīng)的索引生成所述當(dāng)前在線服務(wù)器列表。
9.如權(quán)利要求7所述的方法,其特征在于,還包括: 所述當(dāng)前服務(wù)器根據(jù)所述分布式系統(tǒng)中各個(gè)服務(wù)器是否在線的狀態(tài)變化,更新所述當(dāng)前在線服務(wù)器列表。
10.一種分布式系統(tǒng)執(zhí)行業(yè)務(wù)的裝置,其特征在于,包括: 接收模塊,用于接收由終端傳送的業(yè)務(wù)請(qǐng)求; 確定模塊,用于利用預(yù)定義的服務(wù)器選取規(guī)則確定出用于執(zhí)行所述業(yè)務(wù)請(qǐng)求的執(zhí)行服務(wù)器; 執(zhí)行模塊,用于在自身所屬的分布式系統(tǒng)執(zhí)行業(yè)務(wù)的裝置為所述執(zhí)行服務(wù)器時(shí)執(zhí)行所述業(yè)務(wù)請(qǐng)求。
11.一種分布式系統(tǒng),其特征在于,包括多個(gè)如權(quán)利要求10所述的裝置,所述裝置彼此之間相互通 信。
【文檔編號(hào)】H04L29/08GK103581273SQ201210280813
【公開日】2014年2月12日 申請(qǐng)日期:2012年8月8日 優(yōu)先權(quán)日:2012年8月8日
【發(fā)明者】舒宏旺, 魯嘉武, 楊軍海 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司