專利名稱:控制跨服務(wù)器的服務(wù)的執(zhí)行的制作方法
技術(shù)領(lǐng)域:
本文涉及一種用于平衡服務(wù)器負(fù)載的技術(shù),尤其涉及控制跨服務(wù)器的服務(wù)的執(zhí)行。
背景技術(shù):
隨著如今的計算機(jī)和因特網(wǎng)應(yīng)用程序的復(fù)雜度的增加,這些應(yīng)用程序通常被分成多個服務(wù)。例如,新聞網(wǎng)站可以被分成更新股票行情的服務(wù)、檢索體育比分的服務(wù)、以及執(zhí)行新聞網(wǎng)站的各種功能的其他服務(wù)。將復(fù)雜應(yīng)用程序分成多個服務(wù)允許復(fù)雜應(yīng)用程序在即使服務(wù)中的一個或多個發(fā)生故障的情況下仍能繼續(xù)工作。即,復(fù)雜應(yīng)用程序在缺少發(fā)生故障的服務(wù)的功能的情況下仍然可以作為整體來工作。此外,可以復(fù)制正在執(zhí)行服務(wù)的服務(wù)器來緩解服務(wù)器硬件故障。例如,可以跨所有服務(wù)器復(fù)制單個配置。如果服務(wù)器由于硬件問題而發(fā)生故障,則仍然存在可用于按需執(zhí)行服務(wù)的多個其他服務(wù)器。因此,例如,即使提供體育比分服務(wù)的一個服務(wù)器發(fā)生故障,體育比分也可以持續(xù)地為網(wǎng)站所用。然而不幸的是, 如果服務(wù)在所有服務(wù)器上執(zhí)行并且該服務(wù)發(fā)生行為偏差,則可能所有的服務(wù)器都可能發(fā)生故障(例如,服務(wù)的存儲器泄漏可能迫使正在執(zhí)行該服務(wù)的服務(wù)器變?yōu)闊o響應(yīng)的并發(fā)生故障)。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容是為了以簡化的形式介紹將在以下具體實施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識出所要求保護(hù)的主題的關(guān)鍵因素或必要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。特別地,此處公開了一種用于平衡服務(wù)器負(fù)載的技術(shù)。即,在操作上耦合到多個服務(wù)器的負(fù)載平衡器被配置成跨多個服務(wù)器委托服務(wù)執(zhí)行工作流。多個服務(wù)器中的相應(yīng)的服務(wù)器被配置成主存多個服務(wù)。在一個示例中,多個服務(wù)器中的服務(wù)器可以相同地(或基本上相同地)被配置成主存多個服務(wù)(例如,多個服務(wù)器中的相應(yīng)的服務(wù)器安裝有處于空閑狀態(tài)的相似的服務(wù))。在另一示例中,多個服務(wù)器中的服務(wù)器可以被配置成主存與彼此不同的多個服務(wù)(例如,服務(wù)器㈧可以安裝處于空閑狀態(tài)的服務(wù)(1-5),而服務(wù)器⑶可以安裝處于空閑狀態(tài)的服務(wù)(3-10))。負(fù)載平衡器可以被配置成委托服務(wù)執(zhí)行工作流從而使得一個以上但少于全部的服務(wù)器將服務(wù)從空閑狀態(tài)調(diào)用到執(zhí)行狀態(tài)。具體地,可以配置負(fù)載平衡器從而使得沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行?;蛘撸梢晕蟹?wù)執(zhí)行工作流從而使得一個或多個但少于全部的服務(wù)器可以將服務(wù)調(diào)用到執(zhí)行狀態(tài)。在一個示例中,多個服務(wù)器中的相應(yīng)的服務(wù)器可以相同地(或基本上相同地)被配置成主存多個服務(wù)。為了創(chuàng)建各服務(wù)器之間的服務(wù)執(zhí)行的多樣性,負(fù)載平衡器可以按照沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行的方式來指定服務(wù)執(zhí)行工作流。例如,在請求從多個服務(wù)器執(zhí)行服務(wù)時,負(fù)載平衡器可以在服務(wù)執(zhí)行工作流中忽略一個或多個服務(wù)器。即,負(fù)載平衡器被配置成基于如何委托服務(wù)執(zhí)行工作流來創(chuàng)建各服務(wù)器之間的服務(wù)執(zhí)行的多樣性。在一個替換示例中,分發(fā)配置生成器可以在操作上耦合到多個服務(wù)器。分發(fā)配置生成器可以被配置成維護(hù)指定服務(wù)器到服務(wù)執(zhí)行的映射的服務(wù)分發(fā)配置,從而使得相應(yīng)的服務(wù)被映射到一個以上但少于全部的服務(wù)器以供預(yù)期執(zhí)行。負(fù)載平衡器可以被配置成基于服務(wù)分發(fā)配置來委托服務(wù)執(zhí)行工作流。具體地,可以維護(hù)服務(wù)分發(fā)配置從而使得沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行的??梢岳斫?,可以生成服務(wù)分發(fā)配置來指定服務(wù)器到服務(wù)執(zhí)行的映射,從而使得相應(yīng)的服務(wù)被映射到一個以上但少于全部的服務(wù)器以供預(yù)期執(zhí)行。在另一替換示例中,可以為多個服務(wù)中的服務(wù)生成服務(wù)排除配置,從而使得將至少一個但少于全部的服務(wù)器從將相應(yīng)的服務(wù)調(diào)用到執(zhí)行狀態(tài)中排除。具體地,對于相應(yīng)的服務(wù),服務(wù)排除配置將一個或多個服務(wù)器指定為從執(zhí)行該服務(wù)中排除。服務(wù)排除配置可以指定服務(wù)器排除,從而使得沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行的。負(fù)載平衡器可以被配置成基于服務(wù)排除配置來委托服務(wù)執(zhí)行工作流。為實現(xiàn)上述和相關(guān)目的,以下描述和附圖闡述了各個說明性方面和實現(xiàn)。這些方面和實現(xiàn)僅指示可使用一個或多個方面的各種方式中的一些。結(jié)合附圖閱讀以下詳細(xì)描述,則本發(fā)明的其他方面、優(yōu)點、以及新穎特征將變得顯而易見。
圖1是示出一種平衡服務(wù)器負(fù)載的示例性方法的流程圖。圖2是服務(wù)排除配置的一個示例的圖示。圖3是示出一種用于平衡服務(wù)器負(fù)載的示例性系統(tǒng)的組件框圖。圖4是示出一種用于平衡服務(wù)器負(fù)載的示例性系統(tǒng)的組件框圖。圖5是服務(wù)分發(fā)配置的一個示例的圖示。圖6是示例性計算機(jī)可讀介質(zhì)的圖示,其中可包括被配置成實現(xiàn)此處所闡述的原理中的一個或多個的處理器可執(zhí)行指令。圖7示出其中可以實現(xiàn)本文闡述的原理中的一個或多個的示例性計算環(huán)境。
具體實施例方式現(xiàn)在參考附圖來描述所要求保護(hù)的主題,所有附圖中使用相同的附圖標(biāo)記來指代相同的元素。在以下描述中,為解釋起見,闡明了眾多具體細(xì)節(jié)以提供對所要求保護(hù)的主題的全面理解。然而,很明顯,所要求保護(hù)的主題可以在沒有這些具體細(xì)節(jié)的情況下實施。在其它情況下,以框圖形式示出了各種結(jié)構(gòu)和設(shè)備以便于描述所要求保護(hù)的主題。如今,計算機(jī)和因特網(wǎng)應(yīng)用程序通常被分成分布在多個服務(wù)器上的多個服務(wù)以提升處理效率并緩解歸因于硬件故障的停機(jī)時間。當(dāng)前,服務(wù)器復(fù)制是用于克服硬件故障的一種技術(shù)。即,如果正在執(zhí)行服務(wù)的服務(wù)器中的一個發(fā)生故障,則可以依賴正在執(zhí)行該服務(wù)的其他服務(wù)器。然而,這種方法不能解決軟件故障所產(chǎn)生的問題。例如,如果服務(wù)包括使得執(zhí)行服務(wù)的服務(wù)器發(fā)生故障并關(guān)閉的一部分代碼,則當(dāng)該服務(wù)遭遇相同的隱錯時,執(zhí)行該服務(wù)的每一服務(wù)器都將出現(xiàn)故障。如果服務(wù)器被相同地配置來執(zhí)行服務(wù),則這是一個問題,因為當(dāng)服務(wù)進(jìn)入使得該服務(wù)發(fā)生故障并使得服務(wù)器鎖住的“壞的”代碼部分時,每一服務(wù)器都可能出現(xiàn)故障。一個解決方案可以是直接將服務(wù)器彼此不同地進(jìn)行配置。不幸的是,對帶有多個配置的多個服務(wù)器的管理成為一個困難的任務(wù)(例如,帶有100個不同的服務(wù)器配置的100個不同的服務(wù)器)。因此,此處提供了用于平衡服務(wù)器負(fù)載的一種或多種系統(tǒng)和/或技術(shù)。具體地,負(fù)載平衡器被配置成委托服務(wù)執(zhí)行工作流,從而使得沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行的??梢岳斫猓?wù)執(zhí)行工作流可以被解釋為來從負(fù)載平衡器到一個或多個服務(wù)器的、關(guān)于一個或多個服務(wù)的執(zhí)行的指令。在一個示例中,多個服務(wù)器被相同地(或基本上相同地)安裝并用服務(wù)配置。負(fù)載平衡器被配置成委托服務(wù)執(zhí)行工作流來創(chuàng)建各服務(wù)器之間的多樣的服務(wù)執(zhí)行。例如,每一服務(wù)可被安裝在每一服務(wù)器上并在其上處于空閑。然而,負(fù)載平衡可以被配置成在請求對特定服務(wù)的執(zhí)行時忽略特定服務(wù)器,從而使得沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行的。可以理解,處于空閑狀態(tài)的服務(wù)可以持續(xù)地在服務(wù)代碼的一小部分或百分比中循環(huán),而處于執(zhí)行狀態(tài)的服務(wù)可以執(zhí)行服務(wù)代碼的較大一部分。以此方式,處于空閑狀態(tài)的服務(wù)不進(jìn)入大部分服務(wù)代碼,并因此具有進(jìn)入可能導(dǎo)致服務(wù)發(fā)生故障的代碼的較小的可能性。另外,當(dāng)服務(wù)處于空閑狀態(tài)時,被執(zhí)行的或循環(huán)的(較小)部分的代碼可能較不易于成為問題,因為這些代碼可能不會導(dǎo)致執(zhí)行實質(zhì)動作。相反,這部分代碼可能僅僅包括例如預(yù)處理活動的無害的最外層的循環(huán)。因此,如此處所提供的,特定服務(wù)可以跨所有服務(wù)器都處于空閑狀態(tài),但不會跨所有服務(wù)器都處于執(zhí)行狀態(tài)。負(fù)載平衡器提供了應(yīng)用程序可靠性,因為它可以被配置成委托服務(wù)執(zhí)行工作流, 從而使得沒有服務(wù)成為跨每一服務(wù)器的單點軟件故障。即,從至少一個服務(wù)器中忽略單個 “難以控制的,,服務(wù)從而使得“難以控制的,,服務(wù)不會導(dǎo)致每一服務(wù)器發(fā)生故障。在一個示例中,服務(wù)可以被配置成在至少兩個服務(wù)器上執(zhí)行來緩解由于歸咎于硬件問題的單個服務(wù)器故障而導(dǎo)致的整體執(zhí)行故障(例如,服務(wù)(1)可以在至少服務(wù)器(A)和服務(wù)器(B)上執(zhí)行以防這兩個服務(wù)器中的一個發(fā)生故障)。負(fù)載平衡器可以改進(jìn)多個服務(wù)器的性能,因為可以從至少一個服務(wù)器中忽略資源密集服務(wù)(例如,可以從執(zhí)行資源密集服務(wù)中忽略一個已經(jīng)過載的服務(wù)器)。即,存在免于執(zhí)行特定服務(wù)的其他服務(wù)器,因為委托服務(wù)執(zhí)行工作流以使得沒有服務(wù)是在所有服務(wù)器上執(zhí)行的。在服務(wù)器發(fā)生故障的情況下,診斷組件可以生成仍然在運(yùn)行的服務(wù)器連同在正在運(yùn)行的服務(wù)器上執(zhí)行的服務(wù)的列表。導(dǎo)致故障的服務(wù)可以基于從仍然在運(yùn)行的服務(wù)器中缺失什么服務(wù)來判定??梢院喕鄠€服務(wù)器的初始配置,因為多個服務(wù)器最初可以用相同配置的服務(wù)來安裝。負(fù)載平衡器基于負(fù)載平衡器如何委托服務(wù)執(zhí)行工作流來提供各服務(wù)器之間的服務(wù)執(zhí)行的多樣性(例如,在請求執(zhí)行服務(wù)時服務(wù)器可以忽略一個或多個服務(wù)器)。此外,負(fù)載平衡器可以通過基于服務(wù)和/或服務(wù)器的資源要求來均勻地平衡各服務(wù)器之間的服務(wù)執(zhí)行工作負(fù)載來增強(qiáng)多個服務(wù)器的性能。例如,負(fù)載平衡器可以將RAM、CPU、網(wǎng)絡(luò)帶寬、和/或其他要求考慮在內(nèi)。平衡服務(wù)器負(fù)載的一個實施例由圖1中的示例性方法100示出。在102處,該方法開始。在104處,確定被配置成主存多個服務(wù)的多個服務(wù)器。例如,服務(wù)器的數(shù)據(jù)倉庫可以被配置成運(yùn)行與一個或多個計算機(jī)和/或因特網(wǎng)應(yīng)用程序相關(guān)聯(lián)的多個服務(wù)。可以理解,
6各服務(wù)器可以被配置成彼此相同(或基本上相同)或彼此不同。在106處,對于多個服務(wù)中的相應(yīng)的服務(wù),可以生成將至少一個但少于全部的服務(wù)器指定為從將服務(wù)調(diào)用到執(zhí)行狀態(tài)中排除的服務(wù)排除配置。即,在接收到與服務(wù)相對應(yīng)的服務(wù)執(zhí)行請求(例如,網(wǎng)頁調(diào)用的體育更新服務(wù)來執(zhí)行代碼以檢索經(jīng)更新的體育比分以供在網(wǎng)頁中顯示)之后,可以基于該服務(wù)的服務(wù)排除配置來委托服務(wù)執(zhí)行工作流。具體地,至少一個但少于全部的服務(wù)器可以將服務(wù)調(diào)用到執(zhí)行狀態(tài)??梢岳斫?,被排除的服務(wù)器中的服務(wù)保持在空閑狀態(tài)。例如,可以將在服務(wù)排除配置中被指定為關(guān)于體育更新服務(wù)被排除的服務(wù)器從與執(zhí)行體育更新服務(wù)相對應(yīng)的服務(wù)執(zhí)行工作流中排除。在一個示例中,可以生成服務(wù)排除配置,從而使得多個服務(wù)器中沒有服務(wù)器是執(zhí)行所有服務(wù)并且多個服務(wù)中沒有服務(wù)是在所有服務(wù)器上執(zhí)行的。即使多個服務(wù)器可能被相同地配置,但負(fù)載平衡器可以在委托服務(wù)執(zhí)行工作流時使用服務(wù)排除配置來創(chuàng)建多個服務(wù)器之間的多樣性。由于服務(wù)排除配置所造成的多樣性,因此服務(wù)排除配置可以用來增強(qiáng)服務(wù)執(zhí)行的性能。例如,可以基于服務(wù)器和/或服務(wù)的資源要求來生成服務(wù)排除配置。例如,具有附加處理能力的服務(wù)器可以被允許執(zhí)行資源密集服務(wù),而可將過載的服務(wù)器從執(zhí)行資源密集服務(wù)中排除。資源要求可以是RAM、CPU、網(wǎng)絡(luò)帶寬、和/或其他資源要求。當(dāng)一個或多個服務(wù)器發(fā)生故障時,可以生成診斷信息。在一個示例中,可以生成包括正在運(yùn)行的服務(wù)器(例如,未發(fā)生故障的服務(wù)器)及其各自正在執(zhí)行的服務(wù)的列表的診斷信息。據(jù)此,可基于列表中缺失哪些服務(wù)來確定哪些服務(wù)導(dǎo)致了故障??梢岳斫?,列表中的服務(wù)可以作為可疑服務(wù)被排除,而缺失服務(wù)可以被視為故障的可疑誘因。圖2示出服務(wù)排除配置202的一個示例??梢岳斫猓m然服務(wù)排除配置202的示例示出服務(wù)器(A)到(N)和服務(wù)⑴到(N),但是服務(wù)排除配置可以被配置成平衡多得多的服務(wù)器和服務(wù)(例如,幾百個或更多)的服務(wù)器負(fù)載。服務(wù)排除配置202指定從執(zhí)行一個或多個服務(wù)中被排除的一個或多個服務(wù)器。在一個示例中,可以委托服務(wù)排除工作流,從而使得將服務(wù)(1)204從由服務(wù)器(A)和/或其他未示出的被排除的服務(wù)器調(diào)用到執(zhí)行狀態(tài)中排除。然而,可以委托服務(wù)執(zhí)行工作流,從而使得服務(wù)(1)204可以由服務(wù)器(B)、服務(wù)器 (C)、服務(wù)器(D)、服務(wù)器(E)、和/或其他未示出的服務(wù)器調(diào)用到執(zhí)行狀態(tài)。以此方式,如果服務(wù)(1)204導(dǎo)致了執(zhí)行服務(wù)(1)204的服務(wù)器(例如,服務(wù)器B、C、D和E)的故障(例如, 關(guān)閉故障),則服務(wù)器(A)和/或其他未示出的被排除的服務(wù)器可以繼續(xù)工作而不受服務(wù) (1)204的故障的影響。在另一示例中,可以委托服務(wù)執(zhí)行工作流,從而使得將服務(wù)0)206從由服務(wù)器 (C)、服務(wù)器(N)、和/或其他未示出的被排除的服務(wù)器調(diào)用到執(zhí)行狀態(tài)中排除。然而,可以委托服務(wù)執(zhí)行工作流,從而使得服務(wù)( 可以由服務(wù)器(A)、服務(wù)器(B)、服務(wù)器(D)、服務(wù)器 (E)、和/或其他未示出的服務(wù)器調(diào)用到執(zhí)行狀態(tài)。以此方式,如果服務(wù)O) 206導(dǎo)致了執(zhí)行服務(wù)(2)206的服務(wù)器(例如,服務(wù)器A、B、D和E)的故障,則服務(wù)器(C)、服務(wù)器(N)、和/ 或其他未示出的被排除的服務(wù)器可以繼續(xù)工作而不受服務(wù)0)206的故障的影響。在一個示例中,負(fù)載平衡器可以在委托服務(wù)執(zhí)行工作流時利用服務(wù)排除配置202。 例如,可以接收對用于執(zhí)行代碼來更新網(wǎng)頁的體育比分的服務(wù)(3)208的請求。負(fù)載平衡器可以基于服務(wù)排除配置202將服務(wù)(3)208的執(zhí)行委托給服務(wù)器(B)、服務(wù)器(C)、服務(wù)器
7(D)、和/或服務(wù)器(N)。然而,負(fù)載平衡器可以從服務(wù)執(zhí)行工作流中忽略服務(wù)器(A)和服務(wù)器(E),因為服務(wù)排除配置202將服務(wù)器(A)和服務(wù)器(E)從執(zhí)行服務(wù)(3)208中排除。負(fù)載平衡器可以利用服務(wù)排除配置202來創(chuàng)建多個服務(wù)器(例如,服務(wù)器(A)到服務(wù)器(N)) 之間的多樣性,從而使得從相應(yīng)的服務(wù)器中忽略至少一個服務(wù)器以使得沒有服務(wù)器是運(yùn)行所有服務(wù)的并且沒有服務(wù)是在所有服務(wù)器上運(yùn)行的。即,如果服務(wù)(3)208發(fā)生故障從而使得執(zhí)行服務(wù)(3)208的服務(wù)器關(guān)機(jī),則被排除的服務(wù)器(例如,服務(wù)器A和服務(wù)器E)可以繼續(xù)工作而不受服務(wù)(3)208的故障的影響。可以理解,可以用系統(tǒng)化的方式來在服務(wù)排除配置202中指定對服務(wù)器的排除。圖3示出了被配置成平衡服務(wù)器負(fù)載的系統(tǒng)300的一個示例。可以理解,雖然系統(tǒng)300的示例示出服務(wù)器㈧到(N)和服務(wù)(1)到G),但是系統(tǒng)300可以被配置成平衡多得多的服務(wù)器和服務(wù)(例如,幾百個或更多)的服務(wù)器負(fù)載。系統(tǒng)300可以包括負(fù)載平衡器304和/或診斷組件314。負(fù)載平衡器304和/或診斷組件314可以在操作上耦合到被配置成主存多個服務(wù)(例如,服務(wù)(1)、服務(wù)O)、服務(wù)(3)、服務(wù)G)、以及其他未示出的服務(wù))的多個服務(wù)器(例如,服務(wù)器(A) 308、服務(wù)器(B) 310、服務(wù)器(N) 312、以及其他未示出的服務(wù)器)。在一個示例中,多個服務(wù)器中的服務(wù)器可以具有相同的(或基本上相同的) 配置(例如,安裝處于空閑狀態(tài)的相同的服務(wù))。在另一示例中,多個服務(wù)器中的服務(wù)器可以具有彼此不同的配置。負(fù)載平衡器304可以被配置成委托服務(wù)執(zhí)行工作流306指定一個以上但少于全部的服務(wù)器將服務(wù)從空閑狀態(tài)調(diào)用到執(zhí)行狀態(tài)。在一個示例中,負(fù)載平衡器304可以通過將一個或多個服務(wù)器從服務(wù)執(zhí)行工作流306中排除來限制服務(wù)并發(fā)地在所有服務(wù)器上進(jìn)入執(zhí)行狀態(tài)。在另一示例中,負(fù)載平衡器304可以通過指定至少兩個服務(wù)器被允許執(zhí)行服務(wù)執(zhí)行工作流306中的服務(wù)來限制服務(wù)器在少于兩個服務(wù)器上進(jìn)入執(zhí)行狀態(tài)??梢岳斫?,負(fù)載平衡器304可以委托服務(wù)執(zhí)行工作流306,從而使得沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行的。負(fù)載平衡器304可以被配置成接收與服務(wù)相對應(yīng)的服務(wù)執(zhí)行請求302。例如,負(fù)載平衡器304可以接收對執(zhí)行與服務(wù)( 相對應(yīng)的代碼的請求。負(fù)載平衡器304可以委托服務(wù)執(zhí)行工作流306指定一個或多個服務(wù)器執(zhí)行與服務(wù)( 相對應(yīng)的代碼,從而使得一個以上但少于全部的服務(wù)器將服務(wù)( 調(diào)用到執(zhí)行狀態(tài)??梢岳斫猓?wù)( 執(zhí)行的多樣性緩解了服務(wù)( 可能成為多個服務(wù)器的單點故障的潛在可能,因為將一個或多個服務(wù)器從服務(wù)執(zhí)行工作流中的執(zhí)行服務(wù)(5)中排除。負(fù)載平衡器304可以基于相應(yīng)的服務(wù)和/或服務(wù)器的資源要求來委托服務(wù)執(zhí)行工作流306。例如,服務(wù)(5)可能需要用于執(zhí)行的大量存儲器。在多個服務(wù)器中,與過載服務(wù)器(B)310相比,服務(wù)器(A)308可以具有額外的未使用的存儲器。負(fù)載平衡器304可以將服務(wù)( 從在服務(wù)器(B) 310上執(zhí)行中排除,但基于大存儲器要求允許在服務(wù)器(A) 308上執(zhí)行。診斷組件314可以被配置成在多個服務(wù)器中的一個或多個服務(wù)器發(fā)生故障時生成診斷信息。診斷組件314可以創(chuàng)建包括正在運(yùn)行的服務(wù)器及其各自正在執(zhí)行的服務(wù)的列表的診斷信息。圖4示出了被配置成平衡服務(wù)器負(fù)載的系統(tǒng)400的一個示例??梢岳斫猓m然系統(tǒng)400的示例示出服務(wù)器(A)到(N)和服務(wù)(1)到G),但是系統(tǒng)400可以被配置成平衡多得多的服務(wù)器和服務(wù)(例如,幾百個或更多)的服務(wù)器負(fù)載。系統(tǒng)400可以包括負(fù)載平衡器 404、分發(fā)配置生成器406、和/或診斷組件418。負(fù)載平衡器404、分發(fā)配置生成器406、和 /或診斷組件418可以在操作上耦合到被配置成主存多個服務(wù)(例如,服務(wù)(1)、服務(wù)O)、 服務(wù)(3)、服務(wù)G)、以及其他未示出的服務(wù))的多個服務(wù)器(例如,服務(wù)器(A) 412、服務(wù)器 (B) 414、服務(wù)器(N) 416、以及其他未示出的服務(wù)器)。例如,服務(wù)器(A) 412、服務(wù)器(B) 414、 服務(wù)器(C)416可以安裝有處于空閑狀態(tài)的服務(wù)(1)、服務(wù)(2)、服務(wù)(3)和服務(wù)(4)。診斷組件418可以被配置成生成包括正在運(yùn)行的服務(wù)器及其各自的服務(wù)(例如,正在運(yùn)行的服務(wù)器中處于執(zhí)行狀態(tài)的服務(wù))的列表的診斷信息。分發(fā)配置生成器406可以被配置成維護(hù)指定服務(wù)器到服務(wù)執(zhí)行的映射的服務(wù)分發(fā)配置408(例如,圖5的服務(wù)分發(fā)配置50 。可以理解,服務(wù)器到服務(wù)執(zhí)行的映射可以將服務(wù)映射到一個以上但少于全部的服務(wù)器以供預(yù)期執(zhí)行。具體地,服務(wù)分發(fā)配置可以包括服務(wù)器到服務(wù)執(zhí)行的映射,從而使得沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行的。在一個示例中,服務(wù)器到服務(wù)執(zhí)行的映射可以指定被允許執(zhí)行服務(wù)的服務(wù)器。可以理解,將在服務(wù)分發(fā)配置408中未映射到服務(wù)的服務(wù)器從執(zhí)行該服務(wù)中排除。分發(fā)配置生成器406可以被配置成基于服務(wù)和/或服務(wù)器的資源要求來維護(hù)服務(wù)分發(fā)配置408。負(fù)載平衡器404可以被配置成利用服務(wù)分發(fā)配置408來創(chuàng)建多個服務(wù)器之間的服務(wù)執(zhí)行多樣性。即,負(fù)載平衡器404可以基于服務(wù)分發(fā)配置408來委托服務(wù)執(zhí)行工作流,從而使得沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行的。以此方式,如果服務(wù)發(fā)生故障導(dǎo)致執(zhí)行該服務(wù)的服務(wù)器關(guān)閉,則不執(zhí)行該服務(wù)的其他服務(wù)器(例如,服務(wù)分發(fā)配置中未映射到該服務(wù)的服務(wù)器)可以不受該服務(wù)的故障的影響。在一個示例中,負(fù)載平衡器404可以被配置成接收與服務(wù)相對應(yīng)的服務(wù)器執(zhí)行請求402。負(fù)載平衡器可以基于服務(wù)分發(fā)配置408來委托服務(wù)執(zhí)行工作流410將一個以上但少于全部的服務(wù)器中的服務(wù)調(diào)用到執(zhí)行狀態(tài)。委托服務(wù)執(zhí)行工作流410可以指定被允許執(zhí)行該服務(wù)的一個或多個服務(wù)器,從而使得沒有服務(wù)器是正在執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行。在一個示例中,負(fù)載平衡器404可以基于服務(wù)分發(fā)配置408的服務(wù)器到服務(wù)執(zhí)行的映射中的一個或多個服務(wù)器到服務(wù)的映射來指定服務(wù)執(zhí)行工作流410中的一個或多個服務(wù)器將服務(wù)調(diào)用到執(zhí)行狀態(tài)。負(fù)載平衡器404將在服務(wù)分發(fā)配置408中未映射到服務(wù)的服務(wù)器從服務(wù)執(zhí)行工作流410中排除。圖5示出服務(wù)分發(fā)配置502的一個示例。可以理解,雖然服務(wù)分發(fā)配置502的示例示出服務(wù)器㈧到(N)和服務(wù)⑴到(N),但是服務(wù)分發(fā)配置可以被配置成平衡多得多的服務(wù)器和服務(wù)(例如,幾百個或更多)的服務(wù)器負(fù)載。服務(wù)分發(fā)配置502指定服務(wù)器到服務(wù)執(zhí)行的映射,其中相應(yīng)的服務(wù)被映射到一個以上但少于全部的服務(wù)器以供預(yù)期執(zhí)行。負(fù)載平衡器可以利用服務(wù)分發(fā)配置502來委托服務(wù)執(zhí)行工作流,從而使得沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒服務(wù)是在所有服務(wù)器上執(zhí)行的。服務(wù)分發(fā)配置502為服務(wù)(1)504指定服務(wù)器到服務(wù)的映射。例如,服務(wù)(1)504 可以由服務(wù)器(C)和服務(wù)器⑶執(zhí)行,但不由服務(wù)器(A)、服務(wù)器(B)、服務(wù)器(E)和服務(wù)器 (N)執(zhí)行。對應(yīng)于服務(wù)(1)504的服務(wù)器到服務(wù)的映射規(guī)定負(fù)載平衡器不允許服務(wù)(1)504 在所有服務(wù)器上進(jìn)入執(zhí)行狀態(tài)。
服務(wù)分發(fā)配置503為服務(wù)0)506指定服務(wù)器到服務(wù)的映射。例如,服務(wù)0)506 可以由服務(wù)器(A)、服務(wù)器(B)、服務(wù)器(C)、服務(wù)器(E)、和服務(wù)器(N)執(zhí)行,但不由服務(wù)器 (D)執(zhí)行。對應(yīng)于服務(wù)0)506的服務(wù)器到服務(wù)的映射規(guī)定負(fù)載平衡器不允許服務(wù)0)506 在所有服務(wù)器上進(jìn)入執(zhí)行狀態(tài)。服務(wù)分發(fā)配置503為服務(wù)(3)508指定服務(wù)器到服務(wù)的映射。例如,服務(wù)(3)508 可以由服務(wù)器(A)、服務(wù)器(C)、服務(wù)器(D)、和服務(wù)器(E)執(zhí)行,但不由服務(wù)器(B)和服務(wù)器 (N)執(zhí)行。對應(yīng)于服務(wù)(3)508的服務(wù)器到服務(wù)的映射規(guī)定負(fù)載平衡器不允許服務(wù)(3)508 在所有服務(wù)器上進(jìn)入執(zhí)行狀態(tài)??梢岳斫?,服務(wù)分發(fā)配置503為服務(wù)(4)510、服務(wù)( 512、和其他未示出的服務(wù)指定服務(wù)器到服務(wù)的映射??梢岳斫?,負(fù)載平衡器可以利用服務(wù)分發(fā)配置503來創(chuàng)建多個服務(wù)器之間的服務(wù)執(zhí)行的多樣性。具有服務(wù)執(zhí)行的多樣分發(fā)在服務(wù)發(fā)生故障時緩解了對多個服務(wù)器的有害影響。以此方式,可以增強(qiáng)性能,因為可以基于服務(wù)和/或服務(wù)器的資源要求來委托服務(wù)執(zhí)行工作流。此外,在服務(wù)發(fā)生故障的情況下,可以通過確定將哪些服務(wù)從余下正在運(yùn)行的服務(wù)器及其各自正在執(zhí)行的服務(wù)的列表中排除來獲得診斷信息。又一實施方式涉及包括被配置成實現(xiàn)本文提出的技術(shù)中的一個或多個的處理器可執(zhí)行指令的計算機(jī)可讀介質(zhì)??梢杂眠@些方式作出的一種示例性計算機(jī)可讀介質(zhì)在圖6 中示出,其中實現(xiàn)600包括其上編碼有計算機(jī)可讀數(shù)據(jù)614的計算機(jī)可讀介質(zhì)616(例如, ⑶-R、DVD-R、或硬盤驅(qū)動器盤片)。該計算機(jī)可讀數(shù)據(jù)614進(jìn)而包括被配置成根據(jù)此處闡述的原理中的一個或多個來操作的一組計算機(jī)指令612。在一個這樣的實施例600中,處理器可執(zhí)行指令612可被配置成執(zhí)行一種方法610,諸如例如,圖1的示例性方法100。S卩,處理器可執(zhí)行指令612可以實現(xiàn)可以經(jīng)由一個或多個處理器執(zhí)行的示例性方法100。在另一個這樣的實施例中,處理器可執(zhí)行指令612可被配置成實現(xiàn)一種系統(tǒng),諸如例如,圖2的示例性系統(tǒng)200。本領(lǐng)域普通技術(shù)人員可以作出可被配置成根據(jù)此處描述的技術(shù)操作的許多這樣的計算機(jī)可讀介質(zhì)。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述具體特征或動作。相反,上述具體特征和動作是作為實現(xiàn)權(quán)利要求的示例形式公開的。如在本申請中所使用的,術(shù)語“組件”、“模塊”、“系統(tǒng)”、“接口 ”等一般旨在表示計算機(jī)相關(guān)的實體,其可以是硬件、硬件和軟件的組合、軟件、或者執(zhí)行中的軟件。例如,組件可以是,但不限于是,在處理器上運(yùn)行的進(jìn)程、處理器、對象、可執(zhí)行碼、執(zhí)行的線程、程序和 /或計算機(jī)。作為說明,運(yùn)行在控制器上的應(yīng)用程序和控制器都可以是組件。一個或多個組件可以駐留在進(jìn)程和/或執(zhí)行的線程中,并且組件可以位于一個計算機(jī)內(nèi)和/或分布在兩個或更多的計算機(jī)之間。此外,所要求保護(hù)的主題可以使用產(chǎn)生控制計算機(jī)以實現(xiàn)所公開的主題的軟件、 固件、硬件或其任意組合的標(biāo)準(zhǔn)編程和/或工程技術(shù)而被實現(xiàn)為方法、裝置或制品。在此使用的“術(shù)語制品”旨在涵蓋可以從任何計算機(jī)可讀設(shè)備、載體或介質(zhì)訪問的計算機(jī)程序。當(dāng)然,本領(lǐng)域的技術(shù)人員將會認(rèn)識到,在不背離所要求保護(hù)的主題的范圍或精神的前提下可以對這一配置進(jìn)行許多修改。圖7和以下討論提供用于實現(xiàn)本文闡述的原理中的一個或多個的實施方式的合
10適的計算環(huán)境的簡要概括描述。圖7的操作環(huán)境只是合適的操作環(huán)境的一個示例,并不旨在對該操作環(huán)境的使用范圍或功能提出任何局限。示例計算設(shè)備包括但不限于個人計算機(jī)、服務(wù)器計算機(jī)、手持式或膝上型設(shè)備、移動設(shè)備(如移動電話、個人數(shù)字助理(PDA)、媒體播放器等)、多處理器系統(tǒng)、消費電子產(chǎn)品、微型計算機(jī)、大型計算機(jī)、包括上述系統(tǒng)或設(shè)備中的任何一個的分布式計算環(huán)境,等等。盡管并非必需,但各實施方式在由一個或多個計算設(shè)備執(zhí)行的“計算機(jī)可讀指令” 的一般上下文中描述。計算機(jī)可讀指令可通過計算機(jī)可讀介質(zhì)來分發(fā)(在以下討論)。計算機(jī)可讀指令可被實現(xiàn)為執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的程序模塊,如函數(shù)、對象、應(yīng)用程序編程接口(API)、數(shù)據(jù)結(jié)構(gòu)等等。通常,計算機(jī)可讀指令的功能可按需在各個環(huán)境中組合或分布。圖7示出了包括被配置成實現(xiàn)此處所提供的一個或多個實施方式的計算設(shè)備712 的系統(tǒng)710的示例。在一種配置中,計算設(shè)備712包括至少一個處理單元716和存儲器718。 取決于計算設(shè)備的確切配置和類型,存儲器718可以是易失性的(如RAM)、非易失性的(如 ROM、閃存等)或是兩者的某種組合。該配置在圖7中由虛線714來示出。在其他實施方式中,設(shè)備712可以包括附加特征和/或功能。例如,設(shè)備712還可以包括附加存儲(例如,可移動和/或不可移動),其中包括但不限于磁存儲、光存儲等等。 這樣的附加存儲在圖7中由存儲720示出。在一個實施方式中,用于實現(xiàn)此處所提供的一個或多個實施方式的計算機(jī)可讀指令可以在存儲720中。存儲720還可以儲存實現(xiàn)操作系統(tǒng)、應(yīng)用程序等的其他計算機(jī)可讀指令。可以在存儲器718中加載計算機(jī)可讀指令以便由例如處理單元716來執(zhí)行。此處所使用的術(shù)語“計算機(jī)可讀介質(zhì)”包括計算機(jī)存儲介質(zhì)。計算機(jī)存儲介質(zhì)包括以用于存儲諸如計算機(jī)可讀指令或其他數(shù)據(jù)等信息的任何方法或技術(shù)來實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。存儲器718和存儲720都是計算機(jī)存儲介質(zhì)的示例。 計算機(jī)存儲介質(zhì)包括但不限于,RAM、ROM、EEPR0M、閃存或其他存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其他光存儲、磁帶盒、磁帶、磁盤存儲或其他磁存儲設(shè)備、或者可用于存儲所需信息并且可由設(shè)備712訪問的任何其他介質(zhì)。任何這樣的計算機(jī)存儲介質(zhì)都可以是設(shè)備712的一部分。設(shè)備712還可包括允許該設(shè)備712與其他設(shè)備進(jìn)行通信的通信連接726。通信連接7 可包括但不限于,調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)、集成網(wǎng)絡(luò)接口、射頻發(fā)射機(jī)/接收機(jī)、紅外線端口、USB連接、或用于將計算設(shè)備712連接到其他計算設(shè)備的其他接口。通信連接7 可以包括有線連接或無線連接。通信連接7 可以發(fā)送和/或接收通信媒體。術(shù)語“計算機(jī)可讀介質(zhì)”可以包括通信介質(zhì)。通信介質(zhì)通常以諸如載波或其他傳輸機(jī)制等“已調(diào)制數(shù)據(jù)信號”來體現(xiàn)計算機(jī)可讀指令或其他數(shù)據(jù),并包括任何信息傳送介質(zhì)。 術(shù)語“已調(diào)制數(shù)據(jù)信號”可以包括以對信號中的信息進(jìn)行編碼的方式設(shè)置或改變其一個或多個特征的信號。設(shè)備712可包括輸入設(shè)備724,諸如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備、 紅外照相機(jī)、視頻輸入設(shè)備和/或任何其他輸入設(shè)備。設(shè)備712中還可包括輸出設(shè)備722, 諸如一個或多個顯示器、揚(yáng)聲器、打印機(jī)和/或任何其他輸出設(shè)備。輸入設(shè)備7M和輸出設(shè)備722可以通過有線連接、無線連接或其任何組合來連接到設(shè)備712。在一個實施方式中,來自另一計算設(shè)備的輸入設(shè)備或輸出設(shè)備可用作計算設(shè)備712的輸入設(shè)備7M或輸出設(shè)備 722。計算設(shè)備712的組件可以通過諸如總線等各種互連來連接。這些互連可包括諸如 PCI Express等外圍部件互連(PCI)、通用串行總線(USB)、火線(IEEE1394)、光學(xué)總線結(jié)構(gòu)等。在另一實施方式中,計算設(shè)備712的組件可以通過網(wǎng)絡(luò)互連。例如,存儲器718可由位于通過網(wǎng)絡(luò)互連的不同物理位置的多個物理存儲器單元組成。本領(lǐng)域技術(shù)人員會認(rèn)識到,用于存儲計算機(jī)可讀指令的存儲設(shè)備可分布在網(wǎng)絡(luò)上。例如,可以通過網(wǎng)絡(luò)7 訪問的計算設(shè)備730可以儲存實現(xiàn)此處所提供的一個或多個實施例的計算機(jī)可讀指令。計算設(shè)備712可以訪問計算設(shè)備730并下載部分或全部計算機(jī)可讀指令來執(zhí)行?;蛘?,計算設(shè)備712可以按需下載計算機(jī)可讀指令的片斷,或者某些指令可以在計算設(shè)備712處執(zhí)行而某些則在計算設(shè)備730處執(zhí)行。此處提供了各實施方式的各種操作。在一個實施方式中,所描述的操作中的一個或多個可以組成儲存在一個或多個計算機(jī)可讀介質(zhì)上的計算機(jī)可讀指令,這些指令如果被計算設(shè)備執(zhí)行則使得計算設(shè)備執(zhí)行所描述的操作。描述一些或全部操作的順序不應(yīng)被解釋為暗示了這些操作必須要依賴于順序。從本說明書獲益的本領(lǐng)域技術(shù)人員應(yīng)理解替換的排序。此外,應(yīng)該理解并非所有的操作都必須存在于此處所提供的每一實施方式中。此外,在此使用詞語“示例性”意指用作示例、實例或說明。在此被描述為“示例性”的任何方面或設(shè)計并不一定被解釋為比其他方面或設(shè)計有利。相反,使用詞語示例性旨在以具體的方式呈現(xiàn)各個概念。如本申請中所使用的,術(shù)語“或”意指包括性“或”而非互斥性“或”。即,除非另有指定或從上下文可以清楚,否則“X使用A或B”意指任何自然的包括性排列。即,如果X使用A ;X使用B ;或X使用A和B兩者,則在任何以上情況下,都滿足 “X使用A或B”。另外,本申請中和所附權(quán)利要求書中所使用的冠詞“一”和“一個” 一般可被解釋為是指“一個或多個”,除非另有指定或從上下文可以清楚指的是單數(shù)形式。同樣,雖然參考一個或多個實現(xiàn)示出并描述了本發(fā)明,但本領(lǐng)域技術(shù)人員基于對本說明書和附圖的閱讀和理解可以想到各種等效替換和修改。本發(fā)明包括所有這些修改和替換并且只由所附權(quán)利要求書來限定。特別地,對于由上述組件(例如,元素、資源等)執(zhí)行的各種功能,除非另外指明,否則用于描述這些組件的術(shù)語旨在對應(yīng)于執(zhí)行所描述的執(zhí)行此處在本發(fā)明的示例性實現(xiàn)中所示的功能的組件的指定功能(例如,功能上等效)的任何組件,即使這些組件在結(jié)構(gòu)上不等效于所公開的結(jié)構(gòu)。另外,盡管可相對于若干實現(xiàn)中的僅一個實現(xiàn)來公開本發(fā)明的一個特定特征,但是這一特征可以如對任何給定或特定應(yīng)用所需且有利地與其他實現(xiàn)的一個或多個其他特征相組合。此外,就在說明書或權(quán)利要求書中使用術(shù)語“包含”、“具有”、“含有”和“帶有”或其變體而言,這些術(shù)語旨在以與術(shù)語“包括” 相似的方式為包含性的。
1權(quán)利要求
1.一種用于平衡服務(wù)器負(fù)載的系統(tǒng)300包括在操作上耦合到多個服務(wù)器的負(fù)載平衡器304,相應(yīng)的服務(wù)器被配置成主存多個服務(wù), 所述負(fù)載平衡器304被配置成委托服務(wù)執(zhí)行工作流306指定一個以上但少于全部的服務(wù)器將服務(wù)從空閑狀態(tài)調(diào)用到執(zhí)行狀態(tài)。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述負(fù)載平衡器被配置成 接收與服務(wù)相對應(yīng)的服務(wù)執(zhí)行請求;以及委托服務(wù)執(zhí)行工作流指定一個以上但少于全部的服務(wù)器將服務(wù)從空閑狀態(tài)調(diào)用到執(zhí)行狀態(tài)。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,包括 診斷組件,所述診斷組件被配置成在多個服務(wù)器中的一個或多個服務(wù)器發(fā)生故障之后,生成包括正在運(yùn)行的服務(wù)器和所述正在運(yùn)行的服務(wù)器各自的服務(wù)的列表的診斷信息。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述負(fù)載平衡器被配置成 基于所述多個服務(wù)中的相應(yīng)的服務(wù)的資源要求來委托服務(wù)執(zhí)行工作流。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述負(fù)載平衡器被配置成 限制服務(wù)并發(fā)地在所有服務(wù)器上進(jìn)入執(zhí)行狀態(tài)。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述負(fù)載平衡器被配置成 限制服務(wù)在少于兩個服務(wù)器上進(jìn)入執(zhí)行狀態(tài)。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述多個服務(wù)器中的第一服務(wù)器具有第一服務(wù)器配置,所述多個服務(wù)器中的第二服務(wù)器具有第二服務(wù)器配置,并且所述多個服務(wù)器中的第三服務(wù)器具有第三服務(wù)器配置,所述第一、第二和第三服務(wù)器的配置彼此不同。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述多個服務(wù)器中的第一服務(wù)器具有第一服務(wù)器配置,所述多個服務(wù)器中的第二服務(wù)器具有所述第一服務(wù)器配置,并且所述多個服務(wù)器中的第三服務(wù)器具有所述第一服務(wù)器配置。
9.一種用于平衡服務(wù)器負(fù)載的方法100,包括 確定104被配置成主存多個服務(wù)的多個服務(wù)器;以及對于多個服務(wù)中的相應(yīng)的服務(wù),生成106將至少一個但少于全部的服務(wù)器指定為從將服務(wù)調(diào)用到執(zhí)行狀態(tài)中排除的服務(wù)排除配置。
10.如權(quán)利要求9所述的方法,其特征在于,包括 接收與服務(wù)相對應(yīng)的服務(wù)執(zhí)行請求;以及基于所述服務(wù)排除配置來委托服務(wù)執(zhí)行工作流來將一個或多個服務(wù)器中的服務(wù)調(diào)用到執(zhí)行狀態(tài)。
11.如權(quán)利要求10所述的方法,其特征在于,包括從所述服務(wù)執(zhí)行工作流中排除被指定為對于所述服務(wù)排除配置中的所述服務(wù)被排除的服務(wù)器。
12.如權(quán)利要求9所述的方法,其特征在于,包括在多個服務(wù)器中的一個或多個服務(wù)器發(fā)生故障之后,生成包括正在運(yùn)行的服務(wù)器和所述正在運(yùn)行的服務(wù)器各自的服務(wù)的列表的診斷信息。
13.如權(quán)利要求9所述的方法,其特征在于,生成所述服務(wù)排除配置包括 基于所述多個服務(wù)中的相應(yīng)的服務(wù)的資源要求來生成所述服務(wù)排除配置。
14.如權(quán)利要求9所述的方法,其特征在于,生成所述服務(wù)排除配置包括生成所述服務(wù)排除配置從而使得所述多個服務(wù)器中沒有服務(wù)器是執(zhí)行所述多個服務(wù)中的所有服務(wù)并且所述多個服務(wù)中沒有服務(wù)是在所述多個服務(wù)器中的所有服務(wù)器上執(zhí)行的。
全文摘要
描述了一種控制跨服務(wù)器的服務(wù)的執(zhí)行。計算機(jī)和因特網(wǎng)應(yīng)用程序通常由諸如數(shù)據(jù)倉庫等大量服務(wù)器來主存。主存應(yīng)用程序時的一個問題是應(yīng)用程序的執(zhí)行可靠性。不幸的是,可能是應(yīng)用程序本身提供了故障點(例如,正在執(zhí)行的服務(wù)造成導(dǎo)致服務(wù)器發(fā)生故障的存儲器泄漏)。因為常常復(fù)制服務(wù)器,所以正在執(zhí)行的服務(wù)的單點故障可以變?yōu)槊恳环?wù)器的單點故障。因此,此處公開了用于平衡服務(wù)器負(fù)載的一種或多種系統(tǒng)和技術(shù)。負(fù)載平衡器可以被配置成在多個服務(wù)器之間委托服務(wù)的執(zhí)行,從而使得沒有服務(wù)器是執(zhí)行所有服務(wù)并且沒有服務(wù)是在所有服務(wù)器上執(zhí)行的。在多個服務(wù)器之間服務(wù)執(zhí)行的分發(fā)提供了跨服務(wù)器的、原本可能與各服務(wù)相同地配置的服務(wù)執(zhí)行的多樣性。
文檔編號H04L29/08GK102196016SQ20111003513
公開日2011年9月21日 申請日期2011年1月25日 優(yōu)先權(quán)日2010年1月26日
發(fā)明者H·扎恩, M·什莫利 申請人:微軟公司