雲計算設計模式(十七) 基於佇列的負載均衡模式

2021-09-07 02:13:55 字數 1631 閱讀 6007

使用佇列,作為一項任務,它呼叫才能順利間歇重物,可能會以其他方式導致失敗的服務或任務超時服務之間的緩衝區。這個模式可以幫助最小化峰中的可用性和響應需求為任務和服務的影響。

許多解決方案在雲中涉及執行呼叫服務的任務。在這種環境下,如果乙個服務進行間歇重物,它可能會導致效能或可靠性問題

乙個服務可以是乙個元件,它是相同的溶液作為利用它的任務的一部分,或者它可以是第三方服務提供訪問經常使用的資源,如快取記憶體或儲存服務。如果相同的服務是由多個同時執行的任務的使用,它可以是難以預料到的服務可能在任何給定時間點來進行請求的數量。

它可能是乙個服務可能會遇到在需求高峰,導致它變得過載和不能對及時響應請求。有大量的併發請求驅服務也可能會導致服務失敗,如果它不能處理的論點,即這些請求可能導致。

重構的解決方案和介紹的任務和服務之間的佇列。任務和服務非同步執行。任務帖含有由服務於乙個佇列所需要的資料的訊息。佇列作為緩衝,儲存該訊息,直到它被檢索到的服務。該服務從佇列中檢索訊息並進行處理。從多個任務,它可以在乙個高度可變的速率產生的請求,可以通過同乙個訊息佇列被傳遞給服務。圖1示出了這種結構。

圖1 - 使用佇列水平上的服務的負載

佇列有效地從服務解耦的任務,並且該服務可以按自己的速度處理從並行任務的請求量的資訊無關。此外,不存在延遲到乙個任務,如果該服務是不可用的時候它投遞乙個訊息到佇列中。

這種模式提供了以下好處:

•它可以幫助最大限度地提高可用性,因為服務而產生的延遲將不會對應用程式,它可以繼續發布訊息佇列,即使該服務不可用或不正在處理訊息的即時和直接的影響。

•它可以有助於最大化可擴充套件性,因為佇列的數目和服務的數量可以變化,以滿足需求。

•它可以有助於控制成本,因為服務例項的數量部署僅需要足以滿足平均負荷,而不是峰值負荷。

注意:

有些服務可以實現節流,如果需求達到閾值,超過該系統可能會失敗。節流可能會降低功能可用。你也許可以實現與這些服務負載均衡,以確保這一閾值沒有達到。

此圖案是非常適合於使用可能會受到過載服務的任何型別的應用程式。

這種模式可能不是合適的,如果該應用程式期望以最小延遲的服務的響應。

微軟的azure web角色儲存資料使用單獨的儲存服務。如果大量的web角色例項同時執行,則可能是儲存服務可以是不堪重負,無法向請求的速度不夠快,以防止超時或沒有響應這些請求。圖2列出了這個問題。

圖2 - 服務從乙個web角色例項大量併發請求正在被壓垮

要解決此問題,可以使用乙個佇列地級web角色例項和儲存服務之間的負載。但是,儲存服務被設計為接受同步請求,並且不能很容易地修改,以讀取資訊以及管理的吞吐量。因此,可以引入乙個輔助角色作為接收從該佇列中的請求,並將其**到所述儲存服務的**服務。在輔助角色的應用程式邏輯可以控制在它傳遞請求到儲存服務,以防止儲存服務從被壓垮的速率。圖3示出了這種解決方案。

圖3 - 使用佇列和輔助角色成水平的幅作用和服務例項之間的負載

本文翻譯自msdn:

雲計算設計模式(十七) 基於佇列的負載均衡模式

使用佇列,作為一項任務,它呼叫才能順利間歇重物,可能會以其他方式導致失敗的服務或任務超時服務之間的緩衝區。這個模式可以幫助最小化峰中的可用性和響應需求為任務和服務的影響。許多解決方案在雲中涉及執行呼叫服務的任務。在這種環境下,如果乙個服務進行間歇重物,它可能會導致效能或可靠性問題 乙個服務可以是乙個...

雲計算設計模式(一)Cache Aside模式

雲計算設計模式 一 cache aside模式 按照需要將資料從資料儲存中載入到快取中。這將提高訪問資料的效能,也會幫助提高儲存在快取中的資料和資料儲存中資料的一致性。上下文和問題 應用使用快取來提公升重複訪問儲存在資料儲存中資料的效能。然而,希望快取中的資料和資料儲存中的資料總是保持一致,是不現實...

基於saas的雲計算 使用基於模式的方法進行雲計算

存檔日期 2019年5月13日 首次發布 2011年9月27日 ibm workload deployer是一種雲管理裝置,它提供了一種基於模式的方法來在雲中部署和管理應用程式環境。從使用者的角度來看,部署有意義的應用程式環境意味著可以進行定製以滿足其特定要求。考慮到這一需求,ibm workloa...