亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

服務(wù)的負載平衡的制作方法

文檔序號:7736295閱讀:309來源:國知局
專利名稱:服務(wù)的負載平衡的制作方法
服務(wù)的負載平衡
背景技術(shù)
1.背景和相關(guān)技術(shù)計算機系統(tǒng)和相關(guān)技術(shù)影響社會的許多方面。的確,計算機系統(tǒng)處理信息的能力 已轉(zhuǎn)變了我們生活和工作的方式。計算機系統(tǒng)現(xiàn)在通常執(zhí)行在計算機系統(tǒng)出現(xiàn)以前手動執(zhí) 行的許多任務(wù)(例如,文字處理、日程安排和賬目管理等)。最近,計算機系統(tǒng)已彼此耦合并 耦合到其它電子設(shè)備以形成計算機系統(tǒng)和其它電子設(shè)備可以在其上傳輸電子內(nèi)容的有線 和無線計算機網(wǎng)絡(luò)。因此,許多計算任務(wù)的執(zhí)行被分布在多個不同的計算機系統(tǒng)和/或多 個不同的計算組件上。在許多環(huán)境內(nèi),多個遠程用戶通過集中式遠程位置訪問應(yīng)用和數(shù)據(jù)。例如,多個客 戶機機器能通過因特網(wǎng)訪問Web服務(wù)。在許多環(huán)境內(nèi),并且尤其對于具有增加的工作負載 的服務(wù)(或其他應(yīng)用),服務(wù)(或應(yīng)用)的多個實例被創(chuàng)建以提供更好的用戶體驗。然而, 如果總體工作負載沒有被相對均勻地跨服務(wù)的多個實例分布,那么具有服務(wù)的多個實例獲 益很少。例如,如果一個實例(或?qū)嵗男〉淖蛹?是過載的而與此同時其他實例未被充 分使用,那么具有多個實例的益處被顯著降低。由此,多個實例服務(wù)器環(huán)境通常包括某些類型的負載平衡技術(shù)來更均勻地在跨服 務(wù)的實例之間分布工作負載。例如,當接收到對于服務(wù)的通信時,負載平衡器能將通信路由 到具有已降低的負載的服務(wù)的實例。由此,服務(wù)的總體工作負載能在跨服務(wù)的多個實例更 均勻地分布。然而,確定如何路由新接收到的通信主要是基于當接收到新的通信時的實例工作 負載。例如,可存在一具有與服務(wù)的特定實例的先前關(guān)于服務(wù)的進行中的使用的通信的客 戶機。然而,當客戶機發(fā)送新的關(guān)于服務(wù)的進行中的使用的通信時,基本上僅僅基于當該新 的通信被接收到時的工作負載來將該新的通信路由到服務(wù)的不同實例。這對于較長時間運 行和/或有狀態(tài)服務(wù)而言不是最優(yōu)的。在客戶機和有狀態(tài)服務(wù)之間的通信能包括一系列請求/回復(fù)序列。在各個請求/ 回復(fù)序列之間,服務(wù)能保持關(guān)于通信的某些狀態(tài),諸如例如,在等待進一步的客戶機請求的 同時維護中間值。然而,如果保持了狀態(tài)的服務(wù)的實例經(jīng)歷了隨后在請求/回復(fù)序列之間 的高工作負載,則負載平衡器可向服務(wù)器的不同實例發(fā)送進一步的客戶機請求。不幸的是, 當通信從服務(wù)的一實例切換到服務(wù)的另一實例時,服務(wù)的該另一實例可能不知道通信的已 保持的狀態(tài)。如此,該另一實例被請求重新計算已保持的狀態(tài)。相比于允許保持了狀態(tài)的實例處理通信中的下一客戶機請求,在新的實例上重新 加載(已經(jīng)保持的)狀態(tài)消耗更多的資源。由此,將通信轉(zhuǎn)向新的實例會不必要地增加服 務(wù)的總體工作負載。進一步,由于已保持的狀態(tài)不被用于與客戶機的進一步通信,因此保持 了狀態(tài)的實例的存儲器資源實質(zhì)上被浪費。簡要概述本發(fā)明涉及用于服務(wù)的負載平衡的方法、系統(tǒng)和計算機程序產(chǎn)品。在某些實施例 中,應(yīng)用負載平衡器接收被定向到應(yīng)用第一客戶機發(fā)起消息。第一客戶機發(fā)起消息是被包括在消息序列中的多個消息里的第一消息(例如,激活消息)。應(yīng)用負載平衡器基于第一客 戶機發(fā)起消息的特征向包括在消息序列中的多個消息指派指定標識符。應(yīng)用負載平衡器確 定所指派的標識符沒有被映射到應(yīng)用的實例。應(yīng)用負載平衡器根據(jù)負載平衡算法將指定標識符映射到應(yīng)用的指定實例。映射幫 助跨應(yīng)用的多個實例平衡應(yīng)用的負載。應(yīng)用負載平衡器將消息發(fā)送到應(yīng)用的指定實例。應(yīng)用負載平衡器在接收到第一客戶機發(fā)起消息之后接收被定向到應(yīng)用的第二客 戶機發(fā)起消息。應(yīng)用負載平衡器基于第二客戶機發(fā)起消息的特征向第二客戶機發(fā)起消息指 派指定標識符。應(yīng)用負載平衡器基于指定標識符到應(yīng)用的指定實例的映射,將第二客戶機 發(fā)起消息和第一客戶機發(fā)起的息相關(guān)聯(lián)(例如,產(chǎn)生與激活消息相關(guān)聯(lián)的相關(guān)消息)。應(yīng)用 負載平衡器響應(yīng)于該相關(guān)聯(lián),向應(yīng)用的指定實例發(fā)送第二客戶機發(fā)起消息。在其他實施例中,應(yīng)用負載平衡器從應(yīng)用的多個實例的指定實例接收應(yīng)用實例發(fā) 起消息。應(yīng)用實例發(fā)起消息被定向到另一應(yīng)用。應(yīng)用負載平衡器基于應(yīng)用實例發(fā)起消息的 特征向應(yīng)用實例發(fā)起消息指派指定標識符。應(yīng)用負載平衡器將指定標識符映射到應(yīng)用的指 定實例以跨應(yīng)用的多個實例平衡應(yīng)用的負載。映射幫助跨應(yīng)用的多個實例平衡應(yīng)用的負 載。應(yīng)用負載平衡器將消息發(fā)送到該另一應(yīng)用。應(yīng)用負載平衡器從該另一應(yīng)用接收被 定向到應(yīng)用的返回消息。應(yīng)用負載平衡器基于返回消息的特征向返回消息指派指定標識 符。應(yīng)用負載平衡器基于指定標識符到應(yīng)用的指定實例的映射,將返回消息與應(yīng)用實例發(fā) 起消息相關(guān)聯(lián)。應(yīng)用負載平衡器將返回消息發(fā)送到應(yīng)用的指定實例。提供本發(fā)明內(nèi)容是為了以簡化的形式介紹將在以下具體實施方式
中進一步描述 的一些概念。本概述不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用 于幫助確定所要求保護的主題的范圍。本發(fā)明的附加特征和優(yōu)點將在以下描述中敘述,且其一部分根據(jù)本說明書將是顯 而易見的,或可通過對本發(fā)明的實踐來獲知。本發(fā)明的特征和優(yōu)點可通過在所附權(quán)利要求 書中特別指出的工具和組合來實現(xiàn)和獲得。本發(fā)明的這些和其他特征將通過以下描述和所 附權(quán)利要求書變得更加顯而易見,或可通過對下文中所述的本發(fā)明的實踐來領(lǐng)會。附圖簡述為了描述可獲得本發(fā)明的上述和其它優(yōu)點和特征的方式,將通過參考附圖中示出 的本發(fā)明的具體實施例來呈現(xiàn)以上簡要描述的本發(fā)明的更具體描述??梢岳斫?,這些附圖 只描繪了本發(fā)明的各典型實施例,并且因此不被認為是對其范圍的限制,將通過使用附圖 并利用附加特征和細節(jié)來描述和解釋本發(fā)明,在附圖中

圖1示出了便于服務(wù)的負載平衡的示例計算機構(gòu)架的視圖。圖2示出了便于服務(wù)的負載平衡的示例計算機構(gòu)架的視圖。圖3示出了用于服務(wù)的負載平衡的示例方法的流程圖。圖4示出了用于服務(wù)的負載平衡的示例方法的流程圖。詳細描述本發(fā)明涉及用于服務(wù)的負載平衡的方法、系統(tǒng)和計算機程序產(chǎn)品。在某些實施例 中,應(yīng)用負載平衡器接收被定向到應(yīng)用的第一客戶機發(fā)起消息。第一客戶機發(fā)起消息是被 包括在消息序列中的多個消息里的第一個消息(例如,激活消息)。應(yīng)用負載平衡器基于第一客戶機發(fā)起消息的特征向包括在消息序列中的多個消息指派指定標識符。應(yīng)用負載平衡 器確定所指派的標識符沒有被映射到應(yīng)用的實例。應(yīng)用負載平衡器根據(jù)負載平衡算法將指定標識符映射到應(yīng)用的指定實例。映射幫 助跨應(yīng)用的多個實例平衡應(yīng)用的負載。應(yīng)用負載平衡器將消息發(fā)送到應(yīng)用的指定實例。應(yīng)用負載平衡器在接收到第一客戶機發(fā)起消息之后接收被定向到應(yīng)用的第二客 戶機發(fā)起消息。應(yīng)用負載平衡器基于第二客戶機發(fā)起消息的特征向第二客戶機發(fā)起消息指 派指定標識符。應(yīng)用負載平衡器基于指定標識符到應(yīng)用的指定實例的映射來將第二客戶機 發(fā)起消息和第一客戶機發(fā)起消息相關(guān)聯(lián)(例如,產(chǎn)生與激活消息相關(guān)聯(lián)的相關(guān)消息)。應(yīng)用 負載平衡器響應(yīng)于該關(guān)聯(lián),向應(yīng)用的指定實例發(fā)送第二客戶機發(fā)起消息。在其他實施例中,應(yīng)用負載平衡器從應(yīng)用的多個實例中的指定實例接收應(yīng)用實例 發(fā)起消息。應(yīng)用實例發(fā)起消息被定向到另一應(yīng)用。應(yīng)用負載平衡器基于應(yīng)用實例發(fā)起消息 的特征來向應(yīng)用實例發(fā)起的消息指派指定標識符。應(yīng)用負載平衡器將指定標識符映射到應(yīng) 用的指定實例以跨應(yīng)用的多個實例平衡應(yīng)用的負載。映射幫助跨應(yīng)用的多個實例平衡應(yīng)用 的負載。應(yīng)用負載平衡器將消息發(fā)送到該另一應(yīng)用。應(yīng)用負載平衡器從該另一應(yīng)用接收被 定向到應(yīng)用的返回消息。應(yīng)用負載平衡器基于返回消息的特征向返回消息指派指定標識 符。應(yīng)用負載平衡器基于指定標識符到應(yīng)用的指定實例的映射,將返回消息與應(yīng)用實例發(fā) 起消息相關(guān)聯(lián)。應(yīng)用負載平衡器將返回消息發(fā)送到應(yīng)用的指定實例。本發(fā)明的各實施例可以包括或利用包含計算機硬件的專用或通用計算機,這將在 下文中更詳細地討論。本發(fā)明范圍內(nèi)的各實施例還包括用于承載或存儲計算機可執(zhí)行指令 和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計算機可讀介質(zhì)。這樣的計算機可讀介質(zhì)可以是可由通用或 專用計算機系統(tǒng)訪問的任何可用介質(zhì)。存儲計算機可執(zhí)行指令的計算機可讀介質(zhì)是物理 存儲介質(zhì)。承載計算機可執(zhí)行指令的計算機可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限 制,本發(fā)明的各實施例可包括至少兩種完全不同的計算機可讀介質(zhì)物理存儲介質(zhì)和傳輸 介質(zhì)。物理存儲介質(zhì)包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁 存儲設(shè)備、或可用于存儲計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通 用或?qū)S糜嬎銠C訪問的任何其他介質(zhì)。對于本說明書和所附權(quán)利要求書,“網(wǎng)絡(luò)”被定義為允許在計算機系統(tǒng)和/或模塊 和/或其他電子設(shè)備之間傳輸電子數(shù)據(jù)的一條或多條數(shù)據(jù)鏈路。當信息通過網(wǎng)絡(luò)或另一通 信連接(硬連線、無線、或硬連線或無線的組合)傳輸或提供給計算機時,該計算機將該連 接適當?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可包括可用于攜帶計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的 所需程序代碼裝置并可由通用或?qū)S糜嬎銠C訪問的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。上述的組合也應(yīng) 被包括在計算機可讀介質(zhì)的范圍內(nèi)。此外,應(yīng)當理解,在到達各種計算機系統(tǒng)組件之后,計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu) 形式的程序代碼裝置可從傳輸介質(zhì)自動轉(zhuǎn)移到物理存儲介質(zhì)(或者相反)。例如,通過網(wǎng) 絡(luò)或數(shù)據(jù)鏈路接收到的計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口模塊(例如, “NIC”)內(nèi)的RAM中,然后最終被傳送到計算機系統(tǒng)RAM和/或計算機系統(tǒng)處的較不易失的 物理存儲介質(zhì)。由此,應(yīng)當理解,物理存儲介質(zhì)可被包括在同樣(或甚至主要)利用傳輸介質(zhì)的計算機系統(tǒng)組件中。計算機可執(zhí)行指令例如包括,使通用計算機、專用計算機、或?qū)S锰幚碓O(shè)備執(zhí)行某 一功能或某組功能的指令和數(shù)據(jù)。計算機可執(zhí)行指令可以是例如二進制代碼、諸如匯編語 言等中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本 主題,但可以理解的是,所附權(quán)利要求書中定義的主題不必限于上述特征或動作。相反,上 述特征和動作是作為實現(xiàn)權(quán)利要求的示例形式而公開的。本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計算機系統(tǒng)配置的網(wǎng)絡(luò) 計算環(huán)境中實踐,這些計算機系統(tǒng)配置包括個人計算機、臺式計算機、膝上型計算機、消息 處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子設(shè)備、網(wǎng)絡(luò)PC、小型 計算機、大型計算機、移動電話、PDA、尋呼機、路由器、交換機等等。本發(fā)明也可以在其中通 過網(wǎng)絡(luò)鏈接(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路 的組合)的本地和遠程計算機系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實踐。在分布式系 統(tǒng)環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設(shè)備中。圖1示出了便于服務(wù)的負載平衡示例計算機架構(gòu)100。如描述的,計算機架構(gòu)100 包括應(yīng)用負載平衡器101和容器112。垂直省略號141表示一個或多個其他容器也被包括 在計算機架構(gòu)100中。計算機架構(gòu)100能表示容器組,該容器組包括應(yīng)用負載平衡器101、 容器112、以及一個或多個其他容器。組件中的每一個可通過系統(tǒng)總線和/或諸如例如局域 網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)或甚至因特網(wǎng)等網(wǎng)絡(luò)(或作為網(wǎng)絡(luò)的一部分)彼此連接。因 此,所描繪的組件中的每一個以及任何其他連接的組件都可以創(chuàng)建消息相關(guān)數(shù)據(jù)并通過網(wǎng) 絡(luò)交換消息相關(guān)數(shù)據(jù)(例如,網(wǎng)際協(xié)議(“IP”)數(shù)據(jù)報和利用IP數(shù)據(jù)報的其他更高層協(xié)議, 諸如傳輸控制協(xié)議(“TCP”)、超文本傳輸協(xié)議(“HTTP”)、簡單郵件傳輸協(xié)議(“SMTP”)等)。應(yīng)用負載平衡器101進一步包括服務(wù)綁定102、親和模塊104、聲明串行化器105、 負載平衡器綁定106、配置管理器107、活動實例管理器108、節(jié)點管理器109以及親和狀態(tài) 111。通常,服務(wù)綁定102是通信棧,其為應(yīng)用負載平衡器101提供消息。服務(wù)綁定102內(nèi) 的相關(guān)模塊103被配置成基于消息內(nèi)容將消息相關(guān)聯(lián)并將相關(guān)標識符插入消息中(例如, 插入消息頭部)以指示相關(guān)消息。通常,應(yīng)用負載平衡器101被配置為服務(wù)的一部分或被包括在與正在被負載平衡 的應(yīng)用相同的容器組中。由此,應(yīng)用負載平衡器101具有與應(yīng)用相同的安全模型。因此,應(yīng) 用負載平衡器101具有與應(yīng)用相同的權(quán)限,能訪問應(yīng)用的消息的部分。當設(shè)計應(yīng)用時,應(yīng)用 負載平衡器101能被設(shè)計或構(gòu)建入應(yīng)用中?;蛘?,當應(yīng)用被初始化時,諸如例如,在計算機 架構(gòu)100中,應(yīng)用負載平衡器101能被集成到應(yīng)用中。親和模塊104被配置成檢查消息(例如,消息頭部),確定消息如何被分派到服務(wù) 實例。親和模塊104能在各種不同的樞紐上親和消息,各種不同的樞紐包括傳輸會話、協(xié) 議會話、消息會話(例如,來自相關(guān)模塊103的相關(guān)標識符)、消息內(nèi)容等等。親和可包括生 成親和ID來將一序列或一系列消息內(nèi)的消息“鎖定”到服務(wù)實例或確定哪個服務(wù)實例要接 收消息。在使用親和的情況下,存在相同會話內(nèi)的消息能被彼此相關(guān)聯(lián)并被分派到相同的 服務(wù)實例的顯著提高的可能性。通常,應(yīng)用負載平衡器101能從親和錯誤中學(xué)習。由于應(yīng)用負載平衡器101能被包括在容器組112中(該容器組包括服務(wù)實例114),因此其能理解由容器112拋出的異常。 由此,如果消息被親和并被分派到與實例當前正在其上活動的容器不同的后端容器,則由 該不同的后端容器拋出的異常包括指示實例當前在其他地方活動的數(shù)據(jù)。例如,應(yīng)用負載平衡器101能理解由后端應(yīng)用返回的重定向異常。重定向異常能 包括關(guān)于應(yīng)用實例當前正在哪里運行的信息。該信息被應(yīng)用負載平衡器101用來將消息重 新傳送到新的目的地。聲明串行化器105被配置成檢查消息認證信息并將從消息得出的任何安全聲明 串行化為消息頭部。該消息頭部然后被包括在消息中。因此,消息中的聲明能在服務(wù)實例 處被重新串行化以執(zhí)行授權(quán)檢查。負載平衡器綁定106是在應(yīng)用負載平衡器101和容器112之間使用的通信棧。節(jié) 點管理器109被配置成訪問關(guān)于應(yīng)用負載平衡器101正跨其進行平衡的多個服務(wù)實例的動 態(tài)和靜態(tài)信息。例如,節(jié)點管理器能從健康報告133訪問服務(wù)實例114的動態(tài)和靜態(tài)信息。 親和模塊103能使用該動態(tài)和靜態(tài)信息來幫助確定如何分派消息?;顒訉嵗芾砥?08被 配置成訪問與被負載平衡的服務(wù)的當前活動的服務(wù)實例以及被負載平衡的服務(wù)的每個服 務(wù)實例的位置有關(guān)的信息。例如,活動實例管理器108能從實例狀態(tài)變化134訪問服務(wù)實 例114的信息?;顒訉嵗芾砥?08能將這樣的信息存儲在在親和狀態(tài)111中。配置管理器107被配置成向應(yīng)用負載平衡器101提供其配置。配置管理器107能 處理配置數(shù)據(jù),諸如例如配置數(shù)據(jù)136,用于加載應(yīng)用負載平衡器101的配置。配置數(shù)據(jù)能 對服務(wù)指定節(jié)流或其他行為,其可被應(yīng)用到服務(wù)的服務(wù)實例。容器112包括負載平衡器綁定116、聲明并行化器113、服務(wù)實例114、容器管理服 務(wù)121、以及實例生存期報告122。服務(wù)實例114是服務(wù)的實例,服務(wù)諸如例如,長時間運行 和/或有狀態(tài)Web服務(wù)(例如,基于Windows基礎(chǔ)(“WF”)或Windows通信基礎(chǔ)(“WCF”) 技術(shù))。服務(wù)實例114可以是服務(wù)的多個實例中的一個。服務(wù)的其他實例能在由垂直省略 號141表示的其他容器上運行。負載平衡器綁定116是在應(yīng)用負載平衡器101和容器112之間使用的通信棧。聲明并行化器113被配置成檢查已串行化的聲明頭部并重建用于執(zhí)行授權(quán)的安 全聲明。聲明并行化器還被配置成認證應(yīng)用負載平衡器101來提供安全聲明正從應(yīng)用負載 平衡器101發(fā)送的某些保證(例如,作為反欺騙機制)。聲明并行化器113還被配置成移除 應(yīng)用負載平衡器101的聲明,例如,作為應(yīng)用負載平衡器101轉(zhuǎn)發(fā)消息的結(jié)果被添加到該消 息的聲明。因此,客戶機認證能在負載平衡器101上執(zhí)行,之后在容器112上執(zhí)行客戶機授 權(quán)。容器管理服務(wù)121被配置來提供關(guān)于運行服務(wù)實例114的計算機系統(tǒng)的健康的健 康信息。計算機系統(tǒng)的健康能從諸如例如存儲器、CPU等各種環(huán)境條件中確定。容器管理 服務(wù)121能在諸如例如健康報告133等中輸出健康信息。實例生存期報告服務(wù)122被配置成當服務(wù)實例114的狀態(tài)變化時(諸如例如,當 服務(wù)實例114結(jié)束或脫水(dehydrate) /鈍化(passivate)時)提供事件。例如,這兩個事 件中的任一個能由活動實例管理器108使用來清除其實例親和映射(存儲在親和狀態(tài)111 中)。實例生存期報告服務(wù)122能在諸如例如實例狀態(tài)變化134中輸出事件。客戶機和服務(wù)實例之間的通信能在客戶機或服務(wù)實例處被發(fā)起。圖3示出了在具有客戶機發(fā)起通信的實施例中的用于服務(wù)的負載平衡的示例方法300的流程圖。方法300 將參考計算機架構(gòu)100中的組件和數(shù)據(jù)來描述。方法300包括應(yīng)用負載平衡器接收被定向到應(yīng)用的第一客戶機發(fā)起消息的動作, 第一客戶機發(fā)起消息是被包括在消息序列中的多個消息里的第一消息(動作301)。例如, 應(yīng)用負載平衡器101能從客戶機接收包括內(nèi)容141的消息131。消息131可以是包括消息 132和一個或多個其他消息的消息序列中的第一消息。因此,消息131能被視為用于激活消 息序列的負載平衡的激活消息。如先前描述的,應(yīng)用負載平衡器191能被集成為應(yīng)用的一 部分。因此,應(yīng)用負載平衡器能被集成為服務(wù)實例114是其實例的應(yīng)用的一部分。因此,應(yīng) 用負載平衡器101能在與服務(wù)實例114相同的安全模型下訪問消息內(nèi)容。方法300包括應(yīng)用負載平衡器基于第一客戶機發(fā)起消息的特征向包括在消息序 列中的多個消息指派指定標識符的動作(動作302)。例如,親和模塊104能向包括消息131 的消息序列指派親和ID。能例如基于由相關(guān)模塊103確定的與指定消息會話的關(guān)聯(lián)、內(nèi)容 141等等來指派親和ID。方法300包括應(yīng)用負載平衡器確定所指派的標識符沒有被映射到應(yīng)用的實例的 動作(動作303)。例如,活動實例管理器104能確定指派給消息131的親和ID沒有被包括 在親和狀態(tài)111中。方法300包括應(yīng)用負載平衡器根據(jù)負載平衡算法將指定標識符映射到 應(yīng)用的指定實例的動作(動作304)。例如,親和模塊104能根據(jù)負載平衡算法將所指派的 親和ID映射到服務(wù)器實例114。實質(zhì)上,能使用任何負載平衡算法。在某些實施例中,循環(huán) 算法基于應(yīng)用實例的生存期以及運行指定的應(yīng)用實例的計算機系統(tǒng)的健康狀態(tài)信息來向 應(yīng)用實例指派消息。例如,親和模塊104能基于健康報告133(運行服務(wù)實例1140的計算 機系統(tǒng)的)以及實例狀態(tài)變化134(服務(wù)實例114的)連同在由橢圓191表示的其他容器 內(nèi)的其他服務(wù)實例的類似信息,來將所指派的親和ID映射到服務(wù)實例114。方法300包括應(yīng)用負載平衡器將第一客戶機發(fā)起消息發(fā)送到應(yīng)用的指定實例的 動作(動作305)。例如,應(yīng)用負載平衡器101能將消息131發(fā)送到容器112。方法300包括應(yīng)用負載平衡器在接收第一客戶機發(fā)起消息之后接收消息序列內(nèi) 所包括的第二客戶機發(fā)起消息的動作(動作306)。例如,應(yīng)用負載平衡器101能從客戶機 接收消息132。方法300包括應(yīng)用負載平衡器基于第二客戶機發(fā)起消息的特征向第二客戶 機發(fā)起消息指派指定標識符的動作(動作307)。例如,親和模塊104能例如基于與同消息 131相同的指定消息會話的關(guān)聯(lián)、在消息131的消息序列中的包含、內(nèi)容142等等,來將消息 131的親和ID指派給消息132。方法300包括應(yīng)用負載平衡器基于指定標識符到應(yīng)用的指定實例的映射,將第二 客戶機發(fā)起消息和第一客戶機發(fā)起消息相關(guān)聯(lián)的動作(動作308)。例如,活動實例服務(wù)管 理器104能確定指派給消息132的親和ID已經(jīng)被包括在親和狀態(tài)111中(從向消息131指 派親和ID中確定)并且被映射到服務(wù)實例114。由此,消息132能被視為與消息131相關(guān) 聯(lián)的相關(guān)消息,其可被視為激活消息。方法300包括應(yīng)用負載平衡器響應(yīng)于該相關(guān)聯(lián)將第 二客戶機發(fā)起消息發(fā)送到應(yīng)用的指定實例的動作(動作309)。例如,應(yīng)用負載平衡器101 能將消息132發(fā)送到容器112。圖4示出了在具有服務(wù)實例發(fā)起的通信的實施例中的用于服務(wù)的負載平衡的示 例方法400的流程圖。方法400將參考計算機體系結(jié)構(gòu)100中的組件和數(shù)據(jù)來描述。
方法400包括應(yīng)用負載平衡器從應(yīng)用的多個實例中的指定實例接收應(yīng)用實例發(fā) 起消息的動作(動作401),該應(yīng)用實例發(fā)起消息被定向到在應(yīng)用的多個實例外部的另一應(yīng) 用。例如,應(yīng)用負載平衡器101能從容器112接收消息151。消息151能被定向到計算機 架構(gòu)100中在容器112和應(yīng)用負載平衡器101外部的另一應(yīng)用。例如,消息151能被定向 到通過有線或無線網(wǎng)絡(luò)連接被連接到應(yīng)用負載平衡器的應(yīng)用。方法400包括應(yīng)用負載平衡 器基于應(yīng)用實例發(fā)起消息的特征向應(yīng)用實例發(fā)起消息指派指定標識符的動作(動作402)。 例如,親和模塊104能基于消息151的消息會話、協(xié)議會話、傳輸會話、內(nèi)容161等等,來向 消息151指派親和ID。方法400包括應(yīng)用負載平衡器將指定標識符映射到應(yīng)用的指定實例來跨應(yīng)用的 多個實例平衡應(yīng)用的負載的動作(動作403)。例如,由于消息來自容器112,因此活動實例 管理器108能將消息151的親和ID映射到服務(wù)實例114。在該實施例中,消息151能被視 為激活消息。方法400包括應(yīng)用負載平衡器將消息發(fā)送到該另一應(yīng)用的動作(動作404)。 例如,應(yīng)用負載平衡器101能將消息151發(fā)送到客戶機。方法400包括應(yīng)用負載平衡器從該另一應(yīng)用接收被定向到應(yīng)用的返回消息的動 作(動作405)。例如,應(yīng)用負載平衡器101能從客戶機接收消息132。方法400包括應(yīng)用 負載平衡器基于返回消息的特征向返回消息指派指定標識符的動作(動作406)。例如,親 和模塊104能基于與同消息151相同的指定消息會話的關(guān)聯(lián)、內(nèi)容142、或在消息序列中的 包含等等,來向消息132指派相關(guān)ID。方法400包括應(yīng)用負載平衡器基于指定標識符到應(yīng)用的指定實例的映射,將返回 消息與應(yīng)用實例發(fā)起消息相關(guān)聯(lián)的動作(動作407)。例如,活動實例服務(wù)管理器104能查 閱親和狀態(tài)111以將相關(guān)ID映射到指派給消息151的親和ID。這實質(zhì)上是將用于遞送的 消息132映射到服務(wù)實例114。由此,消息132能被視為與消息151相關(guān)聯(lián)的相關(guān)消息,其 可被視為激活消息。方法400包括應(yīng)用負載平衡器將返回消息發(fā)送到應(yīng)用的指定實例的動 作(動作408)。例如,應(yīng)用負載平衡器101能將消息132發(fā)送到容器112。能使用用于構(gòu)建應(yīng)用負載平衡器要平衡的服務(wù)的相同基礎(chǔ)架構(gòu)來構(gòu)建應(yīng)用負載 平衡器。進一步,由于應(yīng)用負載平衡器能與服務(wù)一起被包括在全局容器中,因此應(yīng)用負載平 衡器能從服務(wù)的任何傳輸通道接收消息。由此,應(yīng)用負載平衡器能被配置成從輪詢傳輸接 收消息,諸如例如隊列、數(shù)據(jù)庫、外部存儲等等。因此,本發(fā)明的實施例允許服務(wù)被更容易地 擴展。進一步,包括在相同的全局容器中允許應(yīng)用負載平衡器在與應(yīng)用相同的安全模型下 訪問被定向到應(yīng)用的消息的內(nèi)容。例如,圖2示出了便于服務(wù)的負載平衡的示例計算機構(gòu)架200的視圖。如描述的, 計算機構(gòu)架200包括容器組201和容器組202。容器組201包括負載平衡器271和負載平 衡器272(在機器251上)、以及在機器252上的本地容器沈1。容器組202包括機器256 上的負載平衡器273以及機器2M上的本地容器沈3。機器253包括位置容器261和位置 容器沈3。本地容器261被包括在容器組201中,而本地容器263被包括在容器組202中。在計算機架構(gòu)200內(nèi),以字母結(jié)尾的附圖標記表示分別對應(yīng)其相應(yīng)數(shù)字的服務(wù)的 實例。由此,服務(wù)實例2IlA和21IB表示服務(wù)211的實例,服務(wù)實例212A和212B表示服務(wù) 212的實例,以及服務(wù)實例213A和213B表示服務(wù)213的實例。因此,如在計算機架構(gòu)200 中描述的,各個服務(wù)具有其自己對應(yīng)的負載平衡器負載平衡器271至少在服務(wù)實例211A
11和21IB之間平衡,負載平衡器272至少在服務(wù)實例212A和212B之間平衡,并且負載平衡 器273至少在服務(wù)實例213A和21 之間平衡。各個負載平衡器具有對應(yīng)的服務(wù)綁定來接收消息負載平衡器271包括服務(wù)綁定 221,負載平衡器272包括服務(wù)綁定222,而負載平衡器273包括服務(wù)綁定223。各個負載平 衡器也包括用于與服務(wù)實例的通信的負載平衡器綁定負載平衡器271包括負載平衡器綁 定231,負載平衡器272包括負載平衡器綁定232,并且負載平衡器273包括負載平衡器綁 定 233 ο各個服務(wù)實例也包括負載平衡器綁定,用于與其對應(yīng)的負載平衡器通信。例如,服 務(wù)實例211A和211B包括負載平衡器綁定MlA和M1B,用于與負載平衡器271通信。服務(wù) 實例212A和212B包括負載平衡器綁定M2A和M2B,用于與負載平衡器272通信。服務(wù)實 例213A和21 包括負載平衡器綁定M3A和M!3B,用于與負載平衡器273通信。由此,對 于各個服務(wù)實例端點,存在在應(yīng)用負載平衡器處的對應(yīng)的端點。因此,本發(fā)明的實施例促進基于消息親和在服務(wù)的實例之間的負載平衡。例如,相 同會話內(nèi)的消息能被分派到相同的服務(wù)實例。與長時間運行和/或有狀態(tài)服務(wù)相關(guān)聯(lián)的一 序列或一系列相關(guān)消息更可能被分派到服務(wù)的相同實例。因此,如果服務(wù)實例已保持了客 戶機狀態(tài),則具有增加的可能來使用已保持的客戶機狀態(tài)而不使另一服務(wù)實例重新創(chuàng)建客 戶機狀態(tài)。本發(fā)明的實施例也促進將消息分發(fā)到被部署到服務(wù)器場中的服務(wù)。例如,各實施 例將相關(guān)的消息親和到被高速緩存在存儲器中的服務(wù)的實例,該服務(wù)能是短時間或長時間 運行服務(wù)。為了促進相關(guān)消息的分發(fā)和親和,負載平衡器擔當應(yīng)用的一部分以在將安全信 息傳遞到真實應(yīng)用來執(zhí)行授權(quán)之前執(zhí)行消息的必要解密和認證。由于相關(guān)聯(lián)是基于內(nèi)容 的,并且消息的內(nèi)容是基于應(yīng)用的變化,因此應(yīng)用負載平衡器參與真實應(yīng)用的任意類型的 版本。也就是說,即使當存在具有新的消息協(xié)定(并因此導(dǎo)致不同的消息內(nèi)容)的應(yīng)用的 新版本時,應(yīng)用負載平衡器也能夠執(zhí)行其功能。本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所描述的實施例在 所有方面都應(yīng)被認為僅是說明性而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求書而 非前述描述來指示。落入權(quán)利要求書的等效方案的含義和范圍內(nèi)的所有改變應(yīng)被權(quán)利要求 書的范圍所涵蓋。
權(quán)利要求
1.一種在計算機架構(gòu)內(nèi)用于跨應(yīng)用的多個實例平衡應(yīng)用的負載的方法,所述計算機架 構(gòu)包括應(yīng)用的多個實例(114)以及所述應(yīng)用的應(yīng)用負載平衡器(101),應(yīng)用負載平衡是所 述應(yīng)用的一部分,所述應(yīng)用的實例在機器場內(nèi)的機器上運行,所述方法包括所述應(yīng)用負載平衡器(101)接收被定向到所述應(yīng)用的第一客戶機發(fā)起消息(131)的動 作,所述應(yīng)用負載平衡器(101)被集成為所述應(yīng)用的一部分,以使得所述應(yīng)用負載平衡器 (101)能在與所述應(yīng)用相同的安全模型下訪問消息內(nèi)容(141),所述第一客戶機發(fā)起消息 (131)是被包括在消息序列中的多個消息里的第一消息;所述應(yīng)用負載平衡器(101)基于所述第一客戶機發(fā)起消息(131)的特征向包括在消息 序列中的所述多個消息指派指定標識符的動作;所述應(yīng)用負載平衡器(101)確定所指派的標識符沒有被映射到所述應(yīng)用的實例的動作;所述應(yīng)用負載平衡器(101)根據(jù)負載平衡算法將所述指定標識符映射到所述應(yīng)用的 指定實例以跨所述應(yīng)用的多個實例平衡所述應(yīng)用的負載的動作;所述應(yīng)用負載平衡器(101)將所述第一客戶機發(fā)起消息(131)發(fā)送到所述應(yīng)用的所述 指定實例(114)的動作;所述應(yīng)用負載平衡器(101)在接收第一客戶機發(fā)起消息之后接收被包括在消息序列 內(nèi)的第二客戶機發(fā)起消息(132)的動作;所述應(yīng)用負載平衡器(101)基于所述第二客戶機發(fā)起消息的特征向所述第二客戶機 發(fā)起消息(132)指派指定標識符的動作;所述應(yīng)用負載平衡器(101)基于所述指定標識符到所述應(yīng)用的指定實例的映射,將所 述第二客戶機發(fā)起消息(132)和所述第一客戶機發(fā)起消息(131)相關(guān)聯(lián)的動作;以及所述應(yīng)用負載平衡器(101)響應(yīng)于所述相關(guān)聯(lián),將所述第二客戶機發(fā)起消息(132)發(fā) 送到所述應(yīng)用的所述指定實例(114)的動作。
2.如權(quán)利要求1所述的方法,其特征在于,進一步包括基于所述第一客戶機消息的內(nèi) 容將所述第一客戶機發(fā)起消息和消息會話相關(guān)聯(lián)。
3.如權(quán)利要求1所述的方法,其特征在于,向所述第一客戶機發(fā)起消息指派指定標識 符的動作包括向所述第一客戶機消息指派親和ID以將所述第一客戶機消息與來自所述第 一客戶機的被定向到所述應(yīng)用的其他消息進行關(guān)聯(lián)的動作。
4.如權(quán)利要求3所述的方法,其特征在于,向所述第一客戶機消息指派親和ID的動作 包括基于傳輸會話、協(xié)議會話、消息內(nèi)容、以及與第一客戶機消息關(guān)聯(lián)的消息會話中的一個 或多個,向所述第一客戶機消息指派親和ID的動作。
5.如權(quán)利要求3所述的方法,其特征在于,所述應(yīng)用負載平衡器向所述第二客戶機發(fā) 起消息指派指定標識符的動作包括將親和ID指派給第二客戶機發(fā)起消息。
6.如權(quán)利要求1所述的方法,其中所述應(yīng)用負載平衡器將指定標識符映射到所述應(yīng)用 的指定實例的動作包括基于在所述應(yīng)用的多個實例中的每個實例處的環(huán)境條件來將指定 標識符映射到所述應(yīng)用的指定實例的動作。
7.如權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用負載平衡器將指定標識符映射到 所述應(yīng)用的指定實例的動作包括基于空閑的應(yīng)用的指定實例來將指定標識符映射到所述 應(yīng)用的指定實例的動作。
8.如權(quán)利要求1所述的方法,其特征在于,還包括所述應(yīng)用負載平衡器檢查所述第一客戶機發(fā)起消息內(nèi)的認證信息以認證所述客戶機 的動作;以及串行化安全聲明以使得應(yīng)用實例能使用所述安全聲明用于授權(quán)檢查的動作。
9.如權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用負載平衡器從輪詢傳輸會話接收 客戶機發(fā)起消息,所述輪詢傳輸會話是從隊列、數(shù)據(jù)庫、以及外部存儲中選擇的。
10.一種在計算機架構(gòu)內(nèi)用于跨應(yīng)用的多個實例平衡應(yīng)用的負載的方法,所述計算機 架構(gòu)包括應(yīng)用的多個實例(114)以及應(yīng)用的應(yīng)用負載平衡器(101),應(yīng)用負載平衡是所述 應(yīng)用的一部分,所述應(yīng)用的各個實例在不同的對應(yīng)機器上運行,所述方法包括所述應(yīng)用負載平衡器(101)從所述應(yīng)用的多個實例中的指定實例接收應(yīng)用實例發(fā)起 消息(151)的動作,所述應(yīng)用實例發(fā)起消息被定向到在應(yīng)用的多個實例外部的另一應(yīng)用;所述應(yīng)用負載平衡器(101)基于所述應(yīng)用實例發(fā)起消息(151)的特征向所述應(yīng)用實例 發(fā)起消息指派指定標識符的動作;所述應(yīng)用負載平衡器(101)將指定標識符映射到所述應(yīng)用的指定實例以跨所述應(yīng)用 的多個實例平衡所述應(yīng)用的負載的動作;所述應(yīng)用負載平衡器(101)從所述另一應(yīng)用接收被定向到所述應(yīng)用的返回消息(132) 的動作;所述應(yīng)用負載平衡器(101)基于所述返回消息的特征向所述返回消息(132)指派指定 標識符的動作;所述應(yīng)用負載平衡器(101)基于指定標識符到所述應(yīng)用的指定實例的映射,將所述返 回消息(132)與所述應(yīng)用實例發(fā)起消息(151)相關(guān)聯(lián)的動作;以及所述應(yīng)用負載平衡器(101)將所述返回消息(13 發(fā)送到所述應(yīng)用的指定實例的動作。
11.如權(quán)利要求10所述的方法,其特征在于,進一步包括基于所述應(yīng)用實例發(fā)起消息 的內(nèi)容將所述應(yīng)用實例發(fā)起消息和消息會話相關(guān)聯(lián)。
12.如權(quán)利要求10所述的方法,其特征在于,向所述應(yīng)用實例發(fā)起消息指派指定標識 符的動作包括向所述應(yīng)用實例發(fā)起消息指派親和ID以將所述應(yīng)用實例發(fā)起消息與被定向 到所述應(yīng)用實例的其他消息進行關(guān)聯(lián)的動作。
13.如權(quán)利要求12所述的方法,其特征在于,向所述應(yīng)用實例發(fā)起消息指派親和ID的 動作包括基于傳輸會話、協(xié)議會話、以及與所述應(yīng)用實例發(fā)起消息關(guān)聯(lián)的消息會話中的一 個或多個,向所述應(yīng)用實例發(fā)起消息指派親和ID的動作。
14.如權(quán)利要求10所述的方法,其特征在于,還包括所述應(yīng)用負載平衡器檢查所述返回消息內(nèi)的認證信息以認證所述客戶機的動作;以及 串行化安全聲明以使得所述應(yīng)用實例能使用所述安全聲明用于授權(quán)檢查的動作。
15.一種用于跨應(yīng)用的多個實例平衡應(yīng)用負載的負載平衡系統(tǒng),所述負載平衡系統(tǒng)包括至少一個計算機系統(tǒng); 系統(tǒng)存儲器;以及一個或多個其上存儲有表示應(yīng)用的計算機可執(zhí)行指令的計算機可讀存儲介質(zhì),所述應(yīng)用包括在不同機器上運行的所述應(yīng)用的多個實例以及在不同機器上運行的應(yīng)用負載平衡 器,所述應(yīng)用負載平衡器用于跨所述應(yīng)用的所述多個實例平衡負載,其中所述應(yīng)用的每個 實例被配置成通過通信棧與所述應(yīng)用負載平衡器(101)通信; 并行化經(jīng)串行化的安全(113)聲明頭部; 從并行化的安全聲明頭部重構(gòu)安全聲明; 提供與應(yīng)用實例的健康相關(guān)的健康狀態(tài)信息(133); 提供關(guān)于應(yīng)用實例處的狀態(tài)變化的生存期事件(134);以及 其中所述應(yīng)用負載平衡器被配置成 接收被定向到應(yīng)用(112)的消息(131,132); 基于消息特征向消息指派標識符;從多個應(yīng)用實例的每個應(yīng)用實例接收生存期事件(Π4)以及從運行多個應(yīng)用實例的 對應(yīng)的計算機系統(tǒng)接收健康狀態(tài)信息(133); 確定所指派的標識符沒有被映射到應(yīng)用實例;響應(yīng)于確定所指派的標識符沒有被映射到應(yīng)用實例,基于接收到的健康狀態(tài)信息和接 收到的生存期事件將所指派的標識符映射到應(yīng)用實例,以使得具有相同特征的一系列消息 能被彼此相關(guān)聯(lián);確定所指派的標識符被映射到應(yīng)用實例;響應(yīng)于所指派的標識符被映射到應(yīng)用實例,基于所指派的標識符將接收到的消息 (131,132)與一系列消息中的一個或多個先前接收到的消息相關(guān)聯(lián);將接收到的消息(131,132)發(fā)送到應(yīng)用實例(112)以使得跨所述應(yīng)用的多個實例平衡 所述應(yīng)用的負載。
全文摘要
本發(fā)明涉及用于服務(wù)的負載平衡的方法、系統(tǒng)和計算機程序產(chǎn)品。本發(fā)明的各實施例促進基于消息的親和、基于消息的內(nèi)容在服務(wù)的實例之間進行負載平衡。例如,相同會話內(nèi)的消息能被分派到相同的服務(wù)實例。與長時間運行和/或有狀態(tài)服務(wù)關(guān)聯(lián)的一序列或一系列相關(guān)的消息更可能被分派到服務(wù)的相同實例。因此,如果服務(wù)實例已保持了客戶機狀態(tài),則具有增加的可能來使用已保持的客戶機狀態(tài)而不使另一服務(wù)實例重新創(chuàng)建客戶機狀態(tài)。
文檔編號H04L12/56GK102138307SQ200980134971
公開日2011年7月27日 申請日期2009年8月11日 優(yōu)先權(quán)日2008年9月2日
發(fā)明者B·施馬爾茨, G·拉瑪納坦, J·卡蒂, K·帕拉瑪斯萬姆, P·王, R·普爾納林格姆, S·J·蘭利, V·尚巴格 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1