偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

我們一起聊聊軟件架構(gòu)伸縮性法則

開發(fā) 架構(gòu)
為了防止這種級聯(lián)故障,可以采用一些架構(gòu)模式,例如回路斷路器和隔板。回路斷路器在檢測到服務延遲超過預設閾值時,可以自動減少請求流向該服務,或完全切斷對其的請求,以防止系統(tǒng)過載。

對于大部分商業(yè)和政府部門的系統(tǒng),初始的開發(fā)和部署更側(cè)重于實現(xiàn)功能的可用性和創(chuàng)新性,而不是可伸縮性。在早期階段,只要系統(tǒng)能夠應對現(xiàn)有的工作負載,開發(fā)團隊就會優(yōu)先考慮引入新功能以提升業(yè)務價值。然而,隨著系統(tǒng)的發(fā)展,性能和可伸縮性逐漸成為關(guān)鍵問題,甚至關(guān)乎系統(tǒng)的生存。在這一點上,架構(gòu)師需負起責任,將系統(tǒng)改造為能夠快速響應并支持伸縮性的架構(gòu)。

成本和伸縮性之間的關(guān)系

對系統(tǒng)進行伸縮的一個核心原則是能夠方便地添加新資源來處理增長的負載。對于很多系統(tǒng)來說,一個簡單而有效的方法是部署多個無狀態(tài)服務器實例,并使用負載均衡器在這些實例之間分配請求,如下圖。

圖片圖片

在云平臺部署資源時,成本主要由兩部分構(gòu)成:

一是每個虛擬機服務器實例的部署成本

二是負載均衡器的成本,后者取決于新的和活躍的請求數(shù)量以及處理的數(shù)據(jù)量。隨著請求量的增加,已部署的虛擬機需要具備更高的處理能力,導致成本上升。

同時,負載均衡器的費用也會隨著請求和處理的數(shù)據(jù)量的增加而增長。因此,成本的增加與系統(tǒng)規(guī)模的擴大是相互影響的,可伸縮性設計的選擇將不可避免地影響到部署成本。忽略這個因素可能導致意外的高昂費用。

為了控制成本,主要有兩個策略:采用彈性負載均衡器自動根據(jù)實際請求量調(diào)整服務器實例的規(guī)模;以及提升每個服務器實例的處理能力,通常通過優(yōu)化服務器配置(如線程數(shù)量、連接數(shù)量、堆內(nèi)存大小等)實現(xiàn)。通過精心調(diào)整這些參數(shù),可以顯著提升性能和處理能力,進而降低成本。

注意系統(tǒng)瓶頸

對一個系統(tǒng)進行伸縮本質(zhì)上就是要增加它的容量。在上面的示例中,我們通過部署更多的服務器實例來提高請求處理能力。

但是,軟件系統(tǒng)是由多個相互依賴的處理元素或微服務組成的,所以在增加一部分微服務容量的同時,不可避免地會被其他一些微服務拖累。在我們的負載均衡示例中,假設服務器實例都連接到同一個共享數(shù)據(jù)庫。隨著部署服務器數(shù)量的增加,數(shù)據(jù)庫的請求負載也隨之增加 (如下圖)。

圖片圖片

達到一定階段時,數(shù)據(jù)庫性能會成為限制因素,導致訪問速度明顯下降。

這時,即便增加服務器的處理能力,也無法從根本上解決問題,因為問題出在數(shù)據(jù)庫上。要想實現(xiàn)進一步的系統(tǒng)擴展,就必須增強數(shù)據(jù)庫的處理能力。這可以通過優(yōu)化查詢語句、增配CPU或內(nèi)存資源、執(zhí)行數(shù)據(jù)庫復制或分片等多種方式來實現(xiàn)。

當然,還有許多其他方法可以緩解這個問題。系統(tǒng)內(nèi)的任何共享資源都可能變成性能瓶頸。在增加系統(tǒng)的某個部分的能力時,必須考慮到對下游部分的影響,避免因增強而引起系統(tǒng)的其他部分突然承受不住壓力,這種情況可能會導致連鎖反應,進而使整個系統(tǒng)崩潰。數(shù)據(jù)庫、消息隊列、網(wǎng)絡連接的長時間延遲、線程及連接池和共享的微服務等,都是潛在的性能瓶頸所在。一旦面臨高流量負載,這些瓶頸點很快就會暴露出來。因此,關(guān)鍵在于一旦瓶頸出現(xiàn),能夠防止系統(tǒng)突然崩潰,并能迅速擴展系統(tǒng)能力以應對。

慢服務比故障服務更有害

在正常情況下,系統(tǒng)應該能夠為微服務和數(shù)據(jù)庫提供穩(wěn)定、低延遲的通信。當系統(tǒng)負載保持在正常的配置水平時,性能是可預測、一致和快速的,如下圖所示。

圖片圖片

當客戶端的請求量超出常規(guī)范圍時,微服務架構(gòu)中服務間的請求響應時間會開始延長。這尤其明顯當進入的請求負荷超過了某個特定服務(例如服務B)的處理能力時,這時未處理完的請求就會在前置微服務(例如服務A)中累積。因為下游服務的處理速度減緩,導致這個微服務接收到的請求量超過了它能夠完成的請求量。

圖片圖片

當服務因為波動或資源耗竭面臨壓力過大而無法正常響應客戶端請求時,客戶端會經(jīng)歷延遲,這種情況可能引起連鎖反應,即級聯(lián)故障——一個響應緩慢的服務導致沿請求鏈路的請求積壓,進而可能造成整個系統(tǒng)的崩潰。

為了防止這種級聯(lián)故障,可以采用一些架構(gòu)模式,例如回路斷路器和隔板?;芈窋嗦菲髟跈z測到服務延遲超過預設閾值時,可以自動減少請求流向該服務,或完全切斷對其的請求,以防止系統(tǒng)過載。隔板則通過隔離下游服務的故障,保護上游服務不受影響,從而在一個服務出現(xiàn)問題時,避免整個系統(tǒng)受損。這些策略有助于構(gòu)建出更加彈性和可擴展的系統(tǒng)架構(gòu)。

責任編輯:武曉燕 來源: 二進制跳動
相關(guān)推薦

2024-09-10 09:52:23

軟件架構(gòu)伸縮性

2023-06-20 07:27:07

架構(gòu)組件插件

2023-04-03 00:09:13

2024-02-26 00:00:00

架構(gòu)老化重構(gòu)

2023-08-10 08:28:46

網(wǎng)絡編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2023-06-30 08:18:51

敏捷開發(fā)模式

2023-09-10 21:42:31

2022-05-24 08:21:16

數(shù)據(jù)安全API

2021-08-27 07:06:10

IOJava抽象

2024-02-20 21:34:16

循環(huán)GolangGo

2025-06-10 03:00:00

2016-11-03 13:11:21

phpphp框架

2022-02-23 08:41:58

NATIPv4IPv6

2024-11-28 09:57:50

C#事件發(fā)布器

2021-08-12 07:49:24

mysql

2023-07-24 09:41:08

自動駕駛技術(shù)交通

2022-10-08 00:00:05

SQL機制結(jié)構(gòu)

2024-07-26 09:47:28

2022-09-22 08:06:29

計算機平板微信
點贊
收藏

51CTO技術(shù)棧公眾號